{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据挖掘 作业1 数据探索性分析与数据预处理\n",
    "\n",
    "**姓名：陈康冰**\n",
    "\n",
    "**学号：3220220897**"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**代码仓库地址：** https://gitee.com/ckblau/dm2023-homework"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import re\n",
    "import ast\n",
    "import sklearn.preprocessing as preprocessing\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.impute import KNNImputer\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据集1：MovieLens 10M Dataset\n",
    "\n",
    "**数据来源：** [MovieLens 10M Dataset](https://www.kaggle.com/datasets/amirmotefaker/movielens-10m-dataset-latest-version)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"movies_dataset.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 20548 entries, 0 to 20547\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype  \n",
      "---  ------           --------------  -----  \n",
      " 0   Unnamed: 0       20548 non-null  int64  \n",
      " 1   IMDb-rating      19707 non-null  float64\n",
      " 2   appropriate_for  11072 non-null  object \n",
      " 3   director         18610 non-null  object \n",
      " 4   downloads        20547 non-null  object \n",
      " 5   id               20548 non-null  int64  \n",
      " 6   industry         20547 non-null  object \n",
      " 7   language         20006 non-null  object \n",
      " 8   posted_date      20547 non-null  object \n",
      " 9   release_date     20547 non-null  object \n",
      " 10  run_time         18780 non-null  object \n",
      " 11  storyline        18847 non-null  object \n",
      " 12  title            20547 non-null  object \n",
      " 13  views            20547 non-null  object \n",
      " 14  writer           18356 non-null  object \n",
      "dtypes: float64(1), int64(2), object(12)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 数据摘要和可视化"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，原始数据的部分列类型并不规范，如数字被以字符串形式表示等。\n",
    "\n",
    "在进行数据分析之前，先对数据类型进行正规化："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['downloads'] = df['downloads'].str.replace(',', '')\n",
    "df['downloads'] = pd.to_numeric(df['downloads'])\n",
    "df['views'] = df['views'].str.replace(',', '')\n",
    "df['views'] = pd.to_numeric(df['views'])\n",
    "df['posted_date'] = pd.to_datetime(df['posted_date'])\n",
    "df['release_date'] = pd.to_datetime(df['release_date'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "p1 = re.compile(r'(\\d+) *h *(\\d+)min')\n",
    "p2 = re.compile(r'(\\d+) *h')\n",
    "p3 = re.compile(r'(\\d+) *min')\n",
    "\n",
    "def parse_length(x):\n",
    "    r = p1.match(str(x))\n",
    "    if r is not None:\n",
    "        h = float(r.group(1))\n",
    "        m = float(r.group(2))\n",
    "        return h * 60 + m\n",
    "    r = p2.match(str(x))\n",
    "    if r is not None:\n",
    "        h = float(r.group(1))\n",
    "        return h * 60\n",
    "    r = p3.match(str(x))\n",
    "    if r is not None:\n",
    "        m = float(r.group(1))\n",
    "        return m\n",
    "    r = float(x)\n",
    "    return r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['run_time'] = df['run_time'].apply(parse_length)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 20548 entries, 0 to 20547\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype         \n",
      "---  ------           --------------  -----         \n",
      " 0   Unnamed: 0       20548 non-null  int64         \n",
      " 1   IMDb-rating      19707 non-null  float64       \n",
      " 2   appropriate_for  11072 non-null  object        \n",
      " 3   director         18610 non-null  object        \n",
      " 4   downloads        20547 non-null  float64       \n",
      " 5   id               20548 non-null  int64         \n",
      " 6   industry         20547 non-null  object        \n",
      " 7   language         20006 non-null  object        \n",
      " 8   posted_date      20547 non-null  datetime64[ns]\n",
      " 9   release_date     20547 non-null  datetime64[ns]\n",
      " 10  run_time         18780 non-null  float64       \n",
      " 11  storyline        18847 non-null  object        \n",
      " 12  title            20547 non-null  object        \n",
      " 13  views            20547 non-null  float64       \n",
      " 14  writer           18356 non-null  object        \n",
      "dtypes: datetime64[ns](2), float64(4), int64(2), object(7)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1 数据摘要"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对标称属性和数值属性进行摘要，包括如下列：\n",
    "\n",
    "标称属性：'appropriate_for', 'director', 'industry', 'language', 'writer'\n",
    "\n",
    "数值属性：'IMDb-rating', 'downloads', 'run_time', 'views'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "appropriate_for\n",
      "R                 4384\n",
      "Not Rated         2142\n",
      "PG-13             1968\n",
      "PG                 886\n",
      "TV-14              694\n",
      "TV-MA              406\n",
      "G                  152\n",
      "Unrated            132\n",
      "TV-PG              115\n",
      "TV-G                99\n",
      "TV-Y7               45\n",
      "TV-Y                25\n",
      "Approved             9\n",
      "NC-17                4\n",
      "TV-Y7-FV             3\n",
      "Passed               3\n",
      "MA-17                1\n",
      "TV-13                1\n",
      "Drama                1\n",
      "Drama, Romance       1\n",
      "18+                  1\n",
      "Name: appropriate_for, dtype: int64\n",
      "\n",
      "director\n",
      "Venky Atluri                                  405\n",
      "Simone Stock                                  403\n",
      "Xavier Manrique                               403\n",
      "John Swab                                     205\n",
      "Neil Jordan                                   205\n",
      "                                             ... \n",
      "Agnieszka Smoczynska                            1\n",
      "Dylan Thomas Ellis                              1\n",
      "Sunil Thakur, Sunil Dhawan, Shivani Thakur      1\n",
      "Suman Mukhopadhyay                              1\n",
      "Shea Sizemore                                   1\n",
      "Name: director, Length: 9672, dtype: int64\n",
      "\n",
      "industry\n",
      "Hollywood / English    14649\n",
      "Bollywood / Indian      2645\n",
      "Tollywood               1172\n",
      "Anime / Kids            1049\n",
      "Wrestling                433\n",
      "Punjabi                  332\n",
      "Stage shows              129\n",
      "Pakistani                 92\n",
      "Dub / Dual Audio          45\n",
      "3D Movies                  1\n",
      "Name: industry, dtype: int64\n",
      "\n",
      "language\n",
      "English                                 12657\n",
      "Hindi                                    2558\n",
      "English,Spanish                           391\n",
      "Punjabi                                   310\n",
      "English,Hindi                             304\n",
      "                                        ...  \n",
      "English,Korean,Spanish                      1\n",
      "Norwegian,Swedish                           1\n",
      "Spanish,Chinese,English,Maori,French        1\n",
      "Urdu,Punjabi,English                        1\n",
      "Spanish,German,English                      1\n",
      "Name: language, Length: 1168, dtype: int64\n",
      "\n",
      "writer\n",
      "Nicholas Schutt                           403\n",
      "Venky Atluri                              402\n",
      "Haley Harris                              402\n",
      "John Swab                                 205\n",
      "Elegance Bratton                          202\n",
      "                                         ... \n",
      "Barbara Samuels, Joseph Boyden              1\n",
      "Maria Allred                                1\n",
      "Pia Mechler                                 1\n",
      "Paul Flannery, David Ryan Keith             1\n",
      "Khwaja Ahmad Abbas, Khwaja Ahmad Abbas      1\n",
      "Name: writer, Length: 13603, dtype: int64\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 标称属性\n",
    "nominal_attributes = ['appropriate_for', 'director', 'industry', 'language', 'writer']\n",
    "for attribute in nominal_attributes:\n",
    "    freq = df[attribute].value_counts()\n",
    "    print(attribute)\n",
    "    print(freq)\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "IMDb-rating\n",
      "缺失值个数： 841\n",
      "最小值： 1.1\n",
      "下四分位数： 4.8\n",
      "中位数： 5.7\n",
      "上四分位数： 6.6\n",
      "最大值： 9.9\n",
      "\n",
      "downloads\n",
      "缺失值个数： 1\n",
      "最小值： 0.0\n",
      "下四分位数： 855.5\n",
      "中位数： 2716.0\n",
      "上四分位数： 10070.0\n",
      "最大值： 391272.0\n",
      "\n",
      "run_time\n",
      "缺失值个数： 1768\n",
      "最小值： 2.0\n",
      "下四分位数： 90.0\n",
      "中位数： 100.0\n",
      "上四分位数： 117.0\n",
      "最大值： 321.0\n",
      "\n",
      "views\n",
      "缺失值个数： 1\n",
      "最小值： 667.0\n",
      "下四分位数： 7571.5\n",
      "中位数： 15222.0\n",
      "上四分位数： 36571.0\n",
      "最大值： 1638533.0\n",
      "\n",
      "posted_date\n",
      "缺失值个数： 1\n",
      "最小值： 1970-01-01 00:00:00\n",
      "下四分位数： 2014-06-06 00:00:00\n",
      "中位数： 2018-05-25 00:00:00\n",
      "上四分位数： 2022-01-15 00:00:00\n",
      "最大值： 2023-02-20 00:00:00\n",
      "\n",
      "release_date\n",
      "缺失值个数： 1\n",
      "最小值： 1921-02-05 00:00:00\n",
      "下四分位数： 2013-01-18 00:00:00\n",
      "中位数： 2017-09-29 00:00:00\n",
      "上四分位数： 2021-11-05 00:00:00\n",
      "最大值： 2023-09-23 00:00:00\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 数值属性\n",
    "numeric_attributes = ['IMDb-rating', 'downloads', 'run_time', 'views', 'posted_date', 'release_date']\n",
    "for attribute in numeric_attributes:\n",
    "    # 5数概括\n",
    "    q1 = df[attribute].quantile(0.25)\n",
    "    median = df[attribute].median()\n",
    "    q3 = df[attribute].quantile(0.75)\n",
    "    minimum = df[attribute].min()\n",
    "    maximum = df[attribute].max()\n",
    "    missing_values = df[attribute].isnull().sum()\n",
    "    print(attribute)\n",
    "    print('缺失值个数：', missing_values)\n",
    "    print('最小值：', minimum)\n",
    "    print('下四分位数：', q1)\n",
    "    print('中位数：', median)\n",
    "    print('上四分位数：', q3)\n",
    "    print('最大值：', maximum)\n",
    "    print()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2 数据可视化"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "针对上述数值属性，做出直方图与盒图，并给出离群点："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<Axes: title={'center': 'IMDb-rating'}>,\n",
       "        <Axes: title={'center': 'downloads'}>],\n",
       "       [<Axes: title={'center': 'run_time'}>,\n",
       "        <Axes: title={'center': 'views'}>],\n",
       "       [<Axes: title={'center': 'posted_date'}>,\n",
       "        <Axes: title={'center': 'release_date'}>]], dtype=object)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1oAAAIOCAYAAAChynzLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACflUlEQVR4nOzde1xU1fo/8M8Iw3ARRi7BMIlIZqihZqiIVmgKaKKVJSZFWGaaqYfUzMspsQzM1OynaWomJhrW8ZKlIWCKecAbSYma3fBWjJhyE20YYf3+8LC/jgPCDAMzwOf9evGq2fvZez9ruWHNs/eeNTIhhAARERERERGZTStLJ0BERERERNTcsNAiIiIiIiIyMxZaREREREREZsZCi4iIiIiIyMxYaBEREREREZkZCy0iIiIiIiIzY6FFRERERERkZiy0iIiIiIiIzIyFFhERERERkZmx0KImLTExETKZDEePHgUAxMXFQSaToVWrVvjjjz8M4svKyuDi4gKZTIYxY8ZIy8+cOQOZTCb9yOVyuLu7o1evXnjttddw4sSJWo9tKZmZmYiLi0NRUZHBuv79+6N///6NnhMRETW8qjHP2owZMwbt27dvcccmuh0LLWqWWrdujXXr1hks//LLL6HT6SCXy6vdbvLkycjKykJGRgY2bNiAJ554Ajt27ED37t3x/vvvN3TaJsnMzMS8efOqLbRWrFiBFStWNH5SRERERC0cCy1qlkaNGoX169ejsrJSb/natWvx5JNPws7Ortrt2rVrhz59+qBv37547LHHMGfOHOTm5iI0NBQzZszAt99+2+C5X7t2zWz76tKlC7p06WK2/RERERFR3bDQombpxRdfxPnz55GWliYt++WXX3DgwAG8+OKLRu3LwcEBa9euhVwur/auVmFhIV544QW4ubnByckJw4YNq/axxeqMGTMGrVu3xvHjxxEWFgZnZ2cMHDgQAJCWlobHH38cbdu2hb29Pe69916MHz8ef//9t7R9XFwcXn/9dQCAn5+f9Ojjvn37ABg+Olj1iOSiRYuwZMkS+Pn5oXXr1ggODsbBgwcN8luzZg3uu+8+KBQKdOnSBZs2beJjGUREFrBz50488MADUCgU8PPzw6JFiwxi/vnnH8yaNQt+fn6ws7PD3XffjVdffVXviYfXX38dSqUSFRUV0rLJkydDJpPpjXGXL19Gq1at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WTExMSIkJEQvft++faJHjx7Czs5OtG/fXqxcudJgn19++aXw9/cXcrlcdOrUSe+NkqVyDwkJueMYIoQQsbGxol27dtLvWlhYmMjMzLRo3u+9957o0KGDsLe3F66uruKhhx4SO3fuNNhnffu8LoWWsbkLcfPrJRwcHMTq1aur3V9j9Xlt7yHqcq6PGzdOb2wUouHPdWPztqbz3NjcG+tcb4pkQvzvE4JEdEetW7fG008/jcTERLPu98yZM/Dz88O6deswZsyYeu1r3759GDBgAPbu3Yv+/fsbte2iRYvw+uuvIy8vD+3bt69XHkREZLpr167B0dGxTrFjxozBvn37cObMmYZNysLqM1b+5z//wciRI00aG4nqg5/RoiYpLi4OMpkMx44dw4gRI+Di4gKlUonnnnsOly5dkuIqKyuxcOFCdOrUCQqFAp6ennj++edx4cIFvf0dO3YMERER8PT0hEKhgFqtxtChQ6U4mUyGsrIyrF+/HjKZDDKZTO+PtUajwfjx49G2bVvY2dnBz88P8+bNw40bN/SO89dffyEyMhLOzs5QKpUYNWqUyVOb/vzzzxg8eDAcHR3h4eGBCRMmoLS01CAuLS0Njz/+ONq2bQt7e3vce++9GD9+vDTNbVV/vv766wBufm6rqo379u2TYjZv3ozg4GA4OTmhdevWCA8Pt6rv7yAiaoqqxrMffvgBTz/9NFxdXdGhQwcIIbBixQo88MADcHBwgKurK55++mnpezPvpK7b1mV8AIBLly7h5Zdfho+PDxQKBe666y7069cP6enpenHp6ekYOHAgXFxc4OjoiH79+mHPnj1G90ldx8qjR4/imWeeQfv27eHg4ID27dtj9OjROHv2rBSTmJiIkSNHAgAGDBggjW+3XjQ1V95Et2OhRU3ak08+iXvvvRf/+c9/EBcXh+3btyM8PFz6UsJXXnkFb7zxBkJDQ7Fjxw688847SElJQd++faWBpKysDKGhobh48SI++ugjpKWlYenSpWjXrp1UuGRlZcHBwQGPPfYYsrKykJWVhRUrVgC4WWT17t0bu3fvxltvvYVvv/0WY8eORUJCAsaNGyflev36dQwaNAipqalISEjAl19+CZVKpTc9eV1dvHgRISEhyM3NxYoVK7BhwwZcvXoVkyZNMoj9/fffERwcjJUrVyI1NRVvvfUWDh06hIceekjqp5de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qCm4cePGHde3atWKXxlCNfr999/x+eef48KFC9KMztOnT0dKSgrWrVuH+Ph4/PHHHzh79iy+/PJLfPbZZ6ioqMBrr72Gp59+Gt99912j58yzmZqkuLg4CCGa3WODGRkZkMvld/xZv369pdMkIiIyypkzZ2od395++21Lp0lW7IcffoAQAvfddx9at24t/WRkZOD3338HcPP74bRaLT777DM8/PDD6N+/P9auXYu9e/fi9OnTjZ4z72gRWZHAwEAcOXLkjjHVfVExERGRNVOr1bWOb1V3KYiqU1lZCRsbG2RnZ8PGxkZvXevWrQHc/OJvW1tb3HfffdK6zp07AwDOnTvX6J/bYqFFZEWcnZ3Rs2dPS6dBRERkVnZ2dhzfqF569OiBiooKFBQU4OGHH642pl+/frhx4wZ+//13dOjQAQDwyy+/AAB8fX0bLdcqnHWQiIiIiIgs7urVq/jtt98A3CyslixZggEDBsDNzQ3t2rXDc889h//+979YvHgxevTogb///hvfffcdunbtisceewyVlZXo1asXWrdujaVLl6KyshKvvvoqXFxckJqa2ujtabaFVmVlJf766y84Oztz4gAiIiMJIVBaWgq1Ws0Pp1sJjmtE1Nx9//33iIiIMFg+evRofPzxx9DpdHj//ffx+eef46+//oKbmxt69+6N2bNn4/777wcA5Ofn4/XXX8d3330HR0dHhIaG4t1334Wrq2ujj2vNttC6cOECfHx8LJ0GEVGTdv78ebRt29bSaRA4rhERmUNjjmvN9jNazs7OAG52pouLi9Hb63Q6pKamIiwsDHK53NzpWYWW0EagZbSzJbQRYDsbU0lJCXx8fKS/pWR5xo5r1nAeNSa2t/lqSW0F2N6GYolxrdkWWlWPVbi4uJhcaDk6OsLFxaXZnuQtoY1Ay2hnS2gjwHZaAh9Rsx7GjmvWdB41Bra3+WpJbQXY3obWmOMaH7wnIiIiIiIyMxZaREREREREZsZCi4iIiIiIyMya7We0iIiai/Yzd5q87ZkFQ82YCRERUf3dOq4pbAQW9gYC4nZDW1H756ea0rjGO1pERERERERmxkKLiIiIiIjIzFhoERERERERmRkLLSIiIiIiIjNjoUVERERERGRmLLSIiIiIiIjMjIUWERERERGRmbHQIiIiIiIiMjMWWkRERERERGbGQouIiIiIiMjMWGgR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HdevX8fAgQORnJyMkpISxMbGAmBNIyKi7nO70dq/f7/da5VKhby8POTl5XU4T3BwMNauXYu1a9d2OEan02Hz5s3urh4REVGHtm7desf3WdOIiKi7Ajy9AkRERERERP5G9q8OEhGRvR+9uMul8ZpAgZUPf/9Up5644ZiIiIh6Hq9oERERERERyYxXtIiIusDVq1JERESkbLyiRUREREREJDM2WkRERERERDJjo0VERERERCQz3qNFRIrB+6yIiIiot/CKFhERERERkczYaBEREREREcmMjRYREREREZHM2GgRERERERHJjI0WERERERGRzNhoERERERERyYyNFhERERERkczYaBEREREREcmMjRYREREREZHM2GgRERERERHJjI0WERERERGRzNhoERERERERySzI0ytARERERES960cv7vL0Kvg9XtEiIiIiIiKSmUuNVn5+Ph566CGEhYUhIiICkyZNQlVVld0YIQTy8vIQHR2Nvn37Ij09HSdPnrQbY7FYMH/+fAwYMAChoaGYOHEiLl++bDemtrYW2dnZ0Gq10Gq1yM7Oxs2bN7uXkoiIyImu1LWZM2dCpVLZ/SQnJ9uNYV0jIqL2XGq0Dhw4gLlz56KkpARFRUVobW2FwWBAQ0ODNGblypVYtWoVCgoKcOzYMej1eowbNw719fXSmIULF2LHjh3YunUrDh8+jFu3biErKwttbW3SmBkzZqCiogKFhYUoLCxERUUFsrOzZYhMRET0va7UNQDIyMhAdXW19PPFF1/Yvc+6RkRE7bl0j1ZhYaHd6w0bNiAiIgJlZWV45JFHIITAmjVr8PLLL2Py5MkAgA8//BCRkZHYsmUL5syZA7PZjPfffx8fffQRHn30UQDA5s2bMWjQIOzduxfjx4/HN998g8LCQpSUlCApKQkAsH79eqSkpKCqqgpDhw6VIzsRESlcZ3XNRqPRQK/XO10G6xoRETnj1sMwzGYzAECn0wEALly4AKPRCIPBII3RaDRIS0vDkSNHMGfOHJSVlaGlpcVuTHR0NOLj43HkyBGMHz8excXF0Gq1UjECgOTkZGi1Whw5csRpQbJYLLBYLNLruro6AEBLSwtaWlpczmabpzvz+golZASUkVMJGQH3c2oChZyr02M0AcLuv+7o7t+Vv29LHWlf12z279+PiIgI9OvXD2lpafjTn/6EiIgIAPDauqaU/YIN8/ovJWUFei+vt9REV2ueL9W1bjdaQgjk5ORg1KhRiI+PBwAYjUYAQGRkpN3YyMhIfPfdd9KYPn364O6773YYY5vfaDRKBex2ERER0pj28vPzsWzZMofpe/bsQUhIiIvpflBUVNTteX2FEjICysiphIxA93OufFjmFelhr460ur2M9l9x66rGxka3P9vXOKtrAJCZmYknnngCsbGxuHDhAl555RWMGTMGZWVl0Gg0Xl/XlLJfsGFe/6WkrEDP5/W2mtjVmudLda3bjda8efNw/PhxHD582OE9lUpl91oI4TCtvfZjnI2/03Jyc3ORk5Mjva6rq8OgQYNgMBgQHh5+x892pqWlBUVFRRg3bhzUarXL8/sCJWQElJFTCRkBIPGPhXh1pBWvfB0Ai/XO+xRfpgkQsuU8kTe+W/PZrp4oSUd1bdq0adKf4+PjMXLkSMTGxmLXrl3S1+Sd8XRdU8p+wYZ5/ZeSsgK9lzc+b3ePLdsVrtY8X6pr3Wq05s+fj507d+LgwYOIiYmRptu+v240GhEVFSVNN5lM0lUuvV6P5uZm1NbW2p39M5lMSE1NlcZcvXrV4XOvXbvmcLXMRqPRQKPROExXq9VubaTuzu8LlJARUEZOf89o2wFbrCpY2vy30bKRI2d3twd/3o6c6aiuORMVFYXY2FicOXMGgPfXNX/fL7THvP5LSVmBns/rbXW0qzXPl+qaS08dFEJg3rx5+PTTT7Fv3z7ExcXZvR8XFwe9Xm93qbO5uRkHDhyQik1iYiLUarXdmOrqapw4cUIak5KSArPZjKNHj0pjSktLYTabpTFERETu6qyuOVNTU4NLly5JJxRZ14iIyBmXrmjNnTsXW7Zsweeff46wsDDpe+VarRZ9+/aFSqXCwoULsXz5cgwZMgRDhgzB8uXLERISghkzZkhjZ82aheeffx79+/eHTqfDokWLkJCQID2tadiwYcjIyMDs2bOxbt06AMAzzzyDrKwsPpmJiIhk01ldu3XrFvLy8jBlyhRERUXh22+/xUsvvYQBAwbg8ccfl8ayrhERUXsuNVrvvPMOACA9Pd1u+oYNGzBz5kwAwAsvvICmpiY899xzqK2tRVJSEvbs2YOwsDBp/OrVqxEUFISpU6eiqakJY8eOxcaNGxEYGCiN+fjjj7FgwQLpKU4TJ05EQUFBdzISERE51VldCwwMRGVlJTZt2oSbN28iKioKv/jFL7Bt2zbWNSIiuiOXGi0hOn/sokqlQl5eHvLy8jocExwcjLVr12Lt2rUdjtHpdNi8ebMrq0dEROSSzupa3759sXt35zeMs64REVF7Lt2jRURERERERJ1jo0VERERERCQzNlpEREREREQyY6NFREREREQkMzZaREREREREMmOjRUREREREJDM2WkRERERERDJjo0VERERERCQzNlpEREREREQyY6NFREREREQkMzZaREREREREMmOjRUREREREJDM2WkRERERERDIL8vQKEBEREZF3+NGLu9ya/9sVj8m0JkS+j1e0iIiIiIiIZMZGi4iIiIiISGZstIiIiIiIiGTGRouIiIiIiEhmfBgGEfUqd2601gTKuCJEREQ+zt2Hl1DP4hUtIiIiIiIimbHRIiIiIiIikhm/OkhERERE5AHOvvqnCRRY+TAQn7cbljaVB9aK5OL1V7TefvttxMXFITg4GImJiTh06JCnV4mIiKjbWNeIiJTBq69obdu2DQsXLsTbb7+Nn//851i3bh0yMzNx6tQpDB482NOrR0RE5BLWNSL/wwdSUEe8utFatWoVZs2ahd/85jcAgDVr1mD37t145513kJ+f7+G1I1IuFhWi7mFdIyJSDq9ttJqbm1FWVoYXX3zRbrrBYMCRI0ccxlssFlgsFum12WwGANy4cQMtLS0uf35LSwsaGxvxwMufwmJ1/fuxpbljXZ6nt9ky1tTUQK1We3p1eoy/5kzK/1L6syZAYMmD1m5vr67y1I4jyCrQ2GhFUEsA2nohp6fImbOmpqZb89XX1wMAhBBufT79oLfrmr/u+zrCvPIIam1wa/7u7nMA+7p2u96uca6SuyYqpdbZuJrXl+qa1zZa169fR1tbGyIjI+2mR0ZGwmg0OozPz8/HsmXLHKbHxcX12DreyYA3PfKxpGAzPL0CvYQ5XePuvqi+vh5arVaelVE4X69rRF3RU8c/Stn32zBvx3yprnlto2WjUtl3tkIIh2kAkJubi5ycHOm11WrFjRs30L9/f6fjO1NXV4dBgwbh0qVLCA8Pd33FfYASMgLKyKmEjABz9iYhBOrr6xEdHe2Rz/dnvVXXvGE76k3M67+UlBVg3p7iibrmtY3WgAEDEBgY6HCWz2QyOZwNBACNRgONRmM3rV+/fm6vR3h4uN9v5ErICCgj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nHV1dSIpKUkkJCSIs2fP2i3HG36X1Dvc3ff52nYkV+2+nbODen/Ku3r1ahEeHi62b98uzpw5I5YsWSKCg4PF2bNnpTHekFcpxytCKKOey53X1/ZVXeW3jZbtTHf7n6eeekoIIcRbb70lYmJihFqtFoMHDxZLliwRFovFYTm5ubkiJiZGtLW1Of2cmpoa8eSTT4qwsDARFhYmnnzySYez6z1JjpynT58WkydPFhERESIkJETcf//9Do9P9YecixcvFpGRkUKtVoshQ4aIN998U1itVrsxnszpLB8AsWHDBmmM1WoVS5cuFXq9Xmg0GvHII4+IyspKu+U0NTWJefPmCZ1OJ/r27SuysrLExYsX7cZ4KqdcGZcuXdrpcnz9d9nRNg9AXLhwwStyUs9zd9/na9uRXLX7ds4aLX/Lm5+fL2JiYkRISIhISUkRhw4dsnvfG/Iq5XhFCGXU89ux5nVMJYQQICIiIiIiItko8qmDREREREREPYmNFhERERERkczYaBEREREREcmMjRYREREREZHM2GgRERERERHJjI0WERERERGRzNhoERERERERyYyNFhERERERkczYaBEREREREcmMjRYREREREZHM2GgRERERERHJjI0WERERERGRzP4P8u2Xs87qaTUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 直方图\n",
    "df[numeric_attributes].hist(figsize=(10, 6), bins=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "IMDb-rating       Axes(0.125,0.11;0.168478x0.77)\n",
       "downloads      Axes(0.327174,0.11;0.168478x0.77)\n",
       "run_time       Axes(0.529348,0.11;0.168478x0.77)\n",
       "views          Axes(0.731522,0.11;0.168478x0.77)\n",
       "dtype: object"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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s89gYmKCXr16ITMzE7/++itSUlLe+FomKothw4ahb9++uHXrFoYPH15sXGnOWXd3d0yaNAm6urpwc3OT1k2dOhVt27aV6q3Lly8jJCQEPXr0gIWFBS5fvozHjx+zLigjtthUAhMTE+nELc6JEydgZWUFW1tb9OzZE6Ghofjmm29w+PDhQgnRvHnzsHv3brz11lv44YcfsGPHDjg6Opa5XKtWrULdunXh6uqKvn37wsPDA23btpXFzJ8/H3FxcbC3t5fuBr6OlStXolOnTvD09MT777+Pzp07S8MjUs21bNkydO3aFf369cP777+PLl26yO6MbdmyBe3atYOnpyc6deoEIQSOHTsm687SvXt35ObmSs+2AEC3bt2Qm5tb6Pmasmrbti327t2L3bt3w8nJCbNnz8b8+fOlUc/Mzc2xdetW7Nu3D46Ojli8eDGWL18ue4/GjRtj//79+N///V+0bt0a69evx6JFi2Qxubm5mDBhAlq2bImePXuiefPmHOaWXsvmzZuRnZ0NFxcXTJo0CQEBAeX6/gMHDkTPnj3RvXt3mJubY9euXeX23mPGjMHGjRuxdetWODs7o1u3bti6dStbbKjSvfvuu6hXrx5+//13eHt7FxtXmnPWyckJZmZmaN26tfRbsKg6ysTEBD///DN69+4NBwcHzJw5EytWrODEt2WkEHzQgTQgPT0d1tbWWLFiBUaPHq3p4hARERFRNceuaFQprl27ht9++w3vvPMOUlNTMX/+fACQdSkiIiIiInpd7IpGlWb58uVo3bq1NJNueHj4az2zQ0REFaNVq1ayoWvzv3bs2KHp4hERlYhd0YiIiAgAcO/evWKHiLa0tHyjUQaJiCoaExsiIiIiIqr22BWNiIiIiIiqPSY2RERERERU7TGxISIiIiKiao+JDRERERERVXtMbIiIiIiIqNpjYkNERERERNUeExsiIiIiIqr2mNgQEREREVG193+o973lzb1whgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 盒图与离群点\n",
    "df[numeric_attributes].plot(kind='box', subplots=True, sharey=False, figsize=(10, 6))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 数据缺失的处理"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用四种策略对缺失值进行处理："
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.1 将缺失部分剔除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 9902 entries, 0 to 20540\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype         \n",
      "---  ------           --------------  -----         \n",
      " 0   Unnamed: 0       9902 non-null   int64         \n",
      " 1   IMDb-rating      9902 non-null   float64       \n",
      " 2   appropriate_for  9902 non-null   object        \n",
      " 3   director         9902 non-null   object        \n",
      " 4   downloads        9902 non-null   float64       \n",
      " 5   id               9902 non-null   int64         \n",
      " 6   industry         9902 non-null   object        \n",
      " 7   language         9902 non-null   object        \n",
      " 8   posted_date      9902 non-null   datetime64[ns]\n",
      " 9   release_date     9902 non-null   datetime64[ns]\n",
      " 10  run_time         9902 non-null   float64       \n",
      " 11  storyline        9902 non-null   object        \n",
      " 12  title            9902 non-null   object        \n",
      " 13  views            9902 non-null   float64       \n",
      " 14  writer           9902 non-null   object        \n",
      "dtypes: datetime64[ns](2), float64(4), int64(2), object(7)\n",
      "memory usage: 1.2+ MB\n"
     ]
    }
   ],
   "source": [
    "# 剔除缺失部分\n",
    "df_1 = df.copy()\n",
    "df_1 = df_1.dropna(axis=0, how=\"any\")\n",
    "df_1.info()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "经过对比可以发现，剔除缺失部分后，相比原数据集的20000余条数据，仅剩不到10000条，数据剩余不到50%。\n",
    "因此，在数据缺失出现较为频繁的数据集中，不适合直接剔除缺失数据。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.2 用最高频率值来填补缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 20548 entries, 0 to 20547\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype         \n",
      "---  ------           --------------  -----         \n",
      " 0   Unnamed: 0       20548 non-null  int64         \n",
      " 1   IMDb-rating      20548 non-null  float64       \n",
      " 2   appropriate_for  20548 non-null  object        \n",
      " 3   director         20548 non-null  object        \n",
      " 4   downloads        20548 non-null  float64       \n",
      " 5   id               20548 non-null  int64         \n",
      " 6   industry         20548 non-null  object        \n",
      " 7   language         20548 non-null  object        \n",
      " 8   posted_date      20548 non-null  datetime64[ns]\n",
      " 9   release_date     20548 non-null  datetime64[ns]\n",
      " 10  run_time         20548 non-null  float64       \n",
      " 11  storyline        20548 non-null  object        \n",
      " 12  title            20548 non-null  object        \n",
      " 13  views            20548 non-null  float64       \n",
      " 14  writer           20548 non-null  object        \n",
      "dtypes: datetime64[ns](2), float64(4), int64(2), object(7)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "# 使用最高频率值填充\n",
    "df_2 = df.copy()\n",
    "for attr in df_2:\n",
    "    var = df_2[attr].mode()\n",
    "    df_2[attr] = df_2[attr].fillna(var.iloc[0])\n",
    "df_2.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>IMDb-rating</th>\n",
       "      <th>appropriate_for</th>\n",
       "      <th>director</th>\n",
       "      <th>downloads</th>\n",
       "      <th>id</th>\n",
       "      <th>industry</th>\n",
       "      <th>language</th>\n",
       "      <th>posted_date</th>\n",
       "      <th>release_date</th>\n",
       "      <th>run_time</th>\n",
       "      <th>storyline</th>\n",
       "      <th>title</th>\n",
       "      <th>views</th>\n",
       "      <th>writer</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>R</td>\n",
       "      <td>John Swab</td>\n",
       "      <td>304.0</td>\n",
       "      <td>372092</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-28</td>\n",
       "      <td>105.0</td>\n",
       "      <td>Doc\\r\\n facilitates a fragile truce between th...</td>\n",
       "      <td>Little Dixie</td>\n",
       "      <td>2794.0</td>\n",
       "      <td>John Swab</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>6.4</td>\n",
       "      <td>TV-PG</td>\n",
       "      <td>Paul Ziller</td>\n",
       "      <td>73.0</td>\n",
       "      <td>372091</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-05</td>\n",
       "      <td>84.0</td>\n",
       "      <td>Caterer\\r\\n Goldy Berry reunites with detectiv...</td>\n",
       "      <td>Grilling Season: A Curious Caterer Mystery</td>\n",
       "      <td>1002.0</td>\n",
       "      <td>John Christian Plummer</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>5.2</td>\n",
       "      <td>R</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "      <td>1427.0</td>\n",
       "      <td>343381</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English,Hindi</td>\n",
       "      <td>2021-04-20</td>\n",
       "      <td>2021-06-18</td>\n",
       "      <td>107.0</td>\n",
       "      <td>As the world searches for a cure to a disastro...</td>\n",
       "      <td>In the Earth</td>\n",
       "      <td>14419.0</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>8.1</td>\n",
       "      <td>R</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>1549.0</td>\n",
       "      <td>372090</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-17</td>\n",
       "      <td>139.0</td>\n",
       "      <td>The life of a young man and his struggles agai...</td>\n",
       "      <td>Vaathi</td>\n",
       "      <td>4878.0</td>\n",
       "      <td>Venky Atluri</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>4.6</td>\n",
       "      <td>R</td>\n",
       "      <td>Shaji Kailas</td>\n",
       "      <td>657.0</td>\n",
       "      <td>372089</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-26</td>\n",
       "      <td>122.0</td>\n",
       "      <td>A man named Kalidas gets stranded due to the p...</td>\n",
       "      <td>Alone</td>\n",
       "      <td>2438.0</td>\n",
       "      <td>Rajesh Jayaraman</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20543</th>\n",
       "      <td>20543</td>\n",
       "      <td>6.6</td>\n",
       "      <td>R</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>28957</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1959-03-13</td>\n",
       "      <td>90.0</td>\n",
       "      <td>Follows\\r\\n a New York City family hiding out ...</td>\n",
       "      <td>Bhai-Bahen</td>\n",
       "      <td>6219.0</td>\n",
       "      <td>Nicholas Schutt</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20544</th>\n",
       "      <td>20544</td>\n",
       "      <td>7.7</td>\n",
       "      <td>R</td>\n",
       "      <td>Bimal Roy</td>\n",
       "      <td>6080.0</td>\n",
       "      <td>28958</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1955-05-13</td>\n",
       "      <td>159.0</td>\n",
       "      <td>Devdas and Parvati had been inseparable as chi...</td>\n",
       "      <td>Devdas</td>\n",
       "      <td>16376.0</td>\n",
       "      <td>Rajinder Singh Bedi, Saratchandra Chatterjee, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20545</th>\n",
       "      <td>20545</td>\n",
       "      <td>8.0</td>\n",
       "      <td>R</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>3276.0</td>\n",
       "      <td>30459</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1958-03-28</td>\n",
       "      <td>110.0</td>\n",
       "      <td>While driving his car on a rainy night, Anand'...</td>\n",
       "      <td>Madhumati</td>\n",
       "      <td>7220.0</td>\n",
       "      <td>Nicholas Schutt</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20546</th>\n",
       "      <td>20546</td>\n",
       "      <td>6.6</td>\n",
       "      <td>R</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>309.0</td>\n",
       "      <td>371669</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-10</td>\n",
       "      <td>2023-02-09</td>\n",
       "      <td>90.0</td>\n",
       "      <td>Follows\\r\\n a New York City family hiding out ...</td>\n",
       "      <td>TNA.Impact 2023-02-09</td>\n",
       "      <td>1419.0</td>\n",
       "      <td>Nicholas Schutt</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20547</th>\n",
       "      <td>20547</td>\n",
       "      <td>6.6</td>\n",
       "      <td>R</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>2613.0</td>\n",
       "      <td>371816</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-14</td>\n",
       "      <td>2023-02-13</td>\n",
       "      <td>90.0</td>\n",
       "      <td>Follows\\r\\n a New York City family hiding out ...</td>\n",
       "      <td>WWE Raw 2023-02-13</td>\n",
       "      <td>6697.0</td>\n",
       "      <td>Nicholas Schutt</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20548 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Unnamed: 0  IMDb-rating appropriate_for      director  downloads  \\\n",
       "0               0          4.8               R     John Swab      304.0   \n",
       "1               1          6.4           TV-PG   Paul Ziller       73.0   \n",
       "2               2          5.2               R  Ben Wheatley     1427.0   \n",
       "3               3          8.1               R  Venky Atluri     1549.0   \n",
       "4               4          4.6               R  Shaji Kailas      657.0   \n",
       "...           ...          ...             ...           ...        ...   \n",
       "20543       20543          6.6               R  Venky Atluri     1998.0   \n",
       "20544       20544          7.7               R     Bimal Roy     6080.0   \n",
       "20545       20545          8.0               R  Venky Atluri     3276.0   \n",
       "20546       20546          6.6               R  Venky Atluri      309.0   \n",
       "20547       20547          6.6               R  Venky Atluri     2613.0   \n",
       "\n",
       "           id             industry       language posted_date release_date  \\\n",
       "0      372092  Hollywood / English        English  2023-02-20   2023-01-28   \n",
       "1      372091  Hollywood / English        English  2023-02-20   2023-02-05   \n",
       "2      343381  Hollywood / English  English,Hindi  2021-04-20   2021-06-18   \n",
       "3      372090            Tollywood          Hindi  2023-02-20   2023-02-17   \n",
       "4      372089            Tollywood          Hindi  2023-02-20   2023-01-26   \n",
       "...       ...                  ...            ...         ...          ...   \n",
       "20543   28957   Bollywood / Indian          Hindi  1970-01-01   1959-03-13   \n",
       "20544   28958   Bollywood / Indian          Hindi  1970-01-01   1955-05-13   \n",
       "20545   30459   Bollywood / Indian          Hindi  1970-01-01   1958-03-28   \n",
       "20546  371669            Wrestling        English  2023-02-10   2023-02-09   \n",
       "20547  371816            Wrestling        English  2023-02-14   2023-02-13   \n",
       "\n",
       "       run_time                                          storyline  \\\n",
       "0         105.0  Doc\\r\\n facilitates a fragile truce between th...   \n",
       "1          84.0  Caterer\\r\\n Goldy Berry reunites with detectiv...   \n",
       "2         107.0  As the world searches for a cure to a disastro...   \n",
       "3         139.0  The life of a young man and his struggles agai...   \n",
       "4         122.0  A man named Kalidas gets stranded due to the p...   \n",
       "...         ...                                                ...   \n",
       "20543      90.0  Follows\\r\\n a New York City family hiding out ...   \n",
       "20544     159.0  Devdas and Parvati had been inseparable as chi...   \n",
       "20545     110.0  While driving his car on a rainy night, Anand'...   \n",
       "20546      90.0  Follows\\r\\n a New York City family hiding out ...   \n",
       "20547      90.0  Follows\\r\\n a New York City family hiding out ...   \n",
       "\n",
       "                                            title    views  \\\n",
       "0                                    Little Dixie   2794.0   \n",
       "1      Grilling Season: A Curious Caterer Mystery   1002.0   \n",
       "2                                    In the Earth  14419.0   \n",
       "3                                          Vaathi   4878.0   \n",
       "4                                           Alone   2438.0   \n",
       "...                                           ...      ...   \n",
       "20543                                  Bhai-Bahen   6219.0   \n",
       "20544                                      Devdas  16376.0   \n",
       "20545                                   Madhumati   7220.0   \n",
       "20546                       TNA.Impact 2023-02-09   1419.0   \n",
       "20547                          WWE Raw 2023-02-13   6697.0   \n",
       "\n",
       "                                                  writer  \n",
       "0                                              John Swab  \n",
       "1                                 John Christian Plummer  \n",
       "2                                           Ben Wheatley  \n",
       "3                                           Venky Atluri  \n",
       "4                                       Rajesh Jayaraman  \n",
       "...                                                  ...  \n",
       "20543                                    Nicholas Schutt  \n",
       "20544  Rajinder Singh Bedi, Saratchandra Chatterjee, ...  \n",
       "20545                                    Nicholas Schutt  \n",
       "20546                                    Nicholas Schutt  \n",
       "20547                                    Nicholas Schutt  \n",
       "\n",
       "[20548 rows x 15 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_2"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，相比方法1，使用最高频率值填补数据的方法，能保留全部数据，但是，这一填充方式对数据质量产生了较明显影响，尤其是在部分属性中，数据并无有代表性的最高频率值，此时填补造成了数据污染。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.3 通过属性的相关关系来填补缺失值"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于数值属性的缺失值，根据某些属性之间的线性关系，使用线性回归来填补。\n",
    "\n",
    "在进行线性回归之前，先将标称属性数值化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 标称属性数值化\n",
    "\n",
    "def encode(df, norm):\n",
    "    mapping = {}\n",
    "    for attr in norm:\n",
    "        df[attr], mapping[attr] = pd.factorize(df[attr])\n",
    "    return df, mapping\n",
    "\n",
    "def decode(df, norm, mapping):\n",
    "    for attr in norm:\n",
    "        df[attr] = mapping[attr][df[attr]]\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 线性回归\n",
    "\n",
    "df_3 = df.copy()\n",
    "\n",
    "df_3, mapping = encode(df_3, nominal_attributes)\n",
    "\n",
    "num_attr = ['IMDb-rating', 'downloads', 'run_time', 'views']\n",
    "reg_attr = ['IMDb-rating', 'downloads', 'run_time', 'views', 'appropriate_for', 'director', 'industry', 'language', 'writer']\n",
    "\n",
    "for attribute in num_attr:\n",
    "    # 找出与当前属性有关的其他属性\n",
    "    related_attributes = [x for x in reg_attr if x != attribute]\n",
    "    \n",
    "    # 筛选出不含缺失值的行，并将属性矩阵和目标值向量分别存储在X和y中\n",
    "    complete_rows = df_3[related_attributes + [attribute]].dropna()\n",
    "    X = complete_rows[related_attributes]\n",
    "    y = complete_rows[attribute]\n",
    "    \n",
    "    # 建立线性回归模型并进行预测\n",
    "    lr = LinearRegression()\n",
    "    lr.fit(X, y)\n",
    "    \n",
    "    # 用模型预测缺失值并填充\n",
    "    incomplete_rows = df_3[related_attributes + [attribute]].loc[df_3[attribute].isnull()]\n",
    "    if incomplete_rows.size <= 0:\n",
    "        continue\n",
    "    \n",
    "    X_incomplete = incomplete_rows[related_attributes].fillna(-1)\n",
    "    y_pred = lr.predict(X_incomplete)\n",
    "    df_3.loc[df_3[attribute].isnull(), attribute] = y_pred\n",
    "\n",
    "df_3 = decode(df_3, nominal_attributes, mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 20548 entries, 0 to 20547\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype         \n",
      "---  ------           --------------  -----         \n",
      " 0   Unnamed: 0       20548 non-null  int64         \n",
      " 1   IMDb-rating      20548 non-null  float64       \n",
      " 2   appropriate_for  20548 non-null  object        \n",
      " 3   director         20548 non-null  object        \n",
      " 4   downloads        20548 non-null  float64       \n",
      " 5   id               20548 non-null  int64         \n",
      " 6   industry         20548 non-null  object        \n",
      " 7   language         20548 non-null  object        \n",
      " 8   posted_date      20547 non-null  datetime64[ns]\n",
      " 9   release_date     20547 non-null  datetime64[ns]\n",
      " 10  run_time         20548 non-null  float64       \n",
      " 11  storyline        18847 non-null  object        \n",
      " 12  title            20547 non-null  object        \n",
      " 13  views            20548 non-null  float64       \n",
      " 14  writer           20548 non-null  object        \n",
      "dtypes: datetime64[ns](2), float64(4), int64(2), object(7)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "df_3.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>IMDb-rating</th>\n",
       "      <th>appropriate_for</th>\n",
       "      <th>director</th>\n",
       "      <th>downloads</th>\n",
       "      <th>id</th>\n",
       "      <th>industry</th>\n",
       "      <th>language</th>\n",
       "      <th>posted_date</th>\n",
       "      <th>release_date</th>\n",
       "      <th>run_time</th>\n",
       "      <th>storyline</th>\n",
       "      <th>title</th>\n",
       "      <th>views</th>\n",
       "      <th>writer</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>4.800000</td>\n",
       "      <td>R</td>\n",
       "      <td>John Swab</td>\n",
       "      <td>304.0</td>\n",
       "      <td>372092</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-28</td>\n",
       "      <td>105.000000</td>\n",
       "      <td>Doc\\r\\n facilitates a fragile truce between th...</td>\n",
       "      <td>Little Dixie</td>\n",
       "      <td>2794.0</td>\n",
       "      <td>John Swab</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>6.400000</td>\n",
       "      <td>TV-PG</td>\n",
       "      <td>Paul Ziller</td>\n",
       "      <td>73.0</td>\n",
       "      <td>372091</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-05</td>\n",
       "      <td>84.000000</td>\n",
       "      <td>Caterer\\r\\n Goldy Berry reunites with detectiv...</td>\n",
       "      <td>Grilling Season: A Curious Caterer Mystery</td>\n",
       "      <td>1002.0</td>\n",
       "      <td>John Christian Plummer</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>5.200000</td>\n",
       "      <td>R</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "      <td>1427.0</td>\n",
       "      <td>343381</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English,Hindi</td>\n",
       "      <td>2021-04-20</td>\n",
       "      <td>2021-06-18</td>\n",
       "      <td>107.000000</td>\n",
       "      <td>As the world searches for a cure to a disastro...</td>\n",
       "      <td>In the Earth</td>\n",
       "      <td>14419.0</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>8.100000</td>\n",
       "      <td>18+</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>1549.0</td>\n",
       "      <td>372090</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-17</td>\n",
       "      <td>139.000000</td>\n",
       "      <td>The life of a young man and his struggles agai...</td>\n",
       "      <td>Vaathi</td>\n",
       "      <td>4878.0</td>\n",
       "      <td>Venky Atluri</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>4.600000</td>\n",
       "      <td>18+</td>\n",
       "      <td>Shaji Kailas</td>\n",
       "      <td>657.0</td>\n",
       "      <td>372089</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-26</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>A man named Kalidas gets stranded due to the p...</td>\n",
       "      <td>Alone</td>\n",
       "      <td>2438.0</td>\n",
       "      <td>Rajesh Jayaraman</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20543</th>\n",
       "      <td>20543</td>\n",
       "      <td>4.218362</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>28957</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1959-03-13</td>\n",
       "      <td>103.591748</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Bhai-Bahen</td>\n",
       "      <td>6219.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20544</th>\n",
       "      <td>20544</td>\n",
       "      <td>7.700000</td>\n",
       "      <td>18+</td>\n",
       "      <td>Bimal Roy</td>\n",
       "      <td>6080.0</td>\n",
       "      <td>28958</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1955-05-13</td>\n",
       "      <td>159.000000</td>\n",
       "      <td>Devdas and Parvati had been inseparable as chi...</td>\n",
       "      <td>Devdas</td>\n",
       "      <td>16376.0</td>\n",
       "      <td>Rajinder Singh Bedi, Saratchandra Chatterjee, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20545</th>\n",
       "      <td>20545</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>3276.0</td>\n",
       "      <td>30459</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1958-03-28</td>\n",
       "      <td>110.000000</td>\n",
       "      <td>While driving his car on a rainy night, Anand'...</td>\n",
       "      <td>Madhumati</td>\n",
       "      <td>7220.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20546</th>\n",
       "      <td>20546</td>\n",
       "      <td>4.143191</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>309.0</td>\n",
       "      <td>371669</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-10</td>\n",
       "      <td>2023-02-09</td>\n",
       "      <td>99.968045</td>\n",
       "      <td>NaN</td>\n",
       "      <td>TNA.Impact 2023-02-09</td>\n",
       "      <td>1419.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20547</th>\n",
       "      <td>20547</td>\n",
       "      <td>4.134983</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>2613.0</td>\n",
       "      <td>371816</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-14</td>\n",
       "      <td>2023-02-13</td>\n",
       "      <td>100.564674</td>\n",
       "      <td>NaN</td>\n",
       "      <td>WWE Raw 2023-02-13</td>\n",
       "      <td>6697.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20548 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Unnamed: 0  IMDb-rating appropriate_for      director  downloads  \\\n",
       "0               0     4.800000               R     John Swab      304.0   \n",
       "1               1     6.400000           TV-PG   Paul Ziller       73.0   \n",
       "2               2     5.200000               R  Ben Wheatley     1427.0   \n",
       "3               3     8.100000             18+  Venky Atluri     1549.0   \n",
       "4               4     4.600000             18+  Shaji Kailas      657.0   \n",
       "...           ...          ...             ...           ...        ...   \n",
       "20543       20543     4.218362             18+     Biren Nag     1998.0   \n",
       "20544       20544     7.700000             18+     Bimal Roy     6080.0   \n",
       "20545       20545     8.000000             18+     Biren Nag     3276.0   \n",
       "20546       20546     4.143191             18+     Biren Nag      309.0   \n",
       "20547       20547     4.134983             18+     Biren Nag     2613.0   \n",
       "\n",
       "           id             industry       language posted_date release_date  \\\n",
       "0      372092  Hollywood / English        English  2023-02-20   2023-01-28   \n",
       "1      372091  Hollywood / English        English  2023-02-20   2023-02-05   \n",
       "2      343381  Hollywood / English  English,Hindi  2021-04-20   2021-06-18   \n",
       "3      372090            Tollywood          Hindi  2023-02-20   2023-02-17   \n",
       "4      372089            Tollywood          Hindi  2023-02-20   2023-01-26   \n",
       "...       ...                  ...            ...         ...          ...   \n",
       "20543   28957   Bollywood / Indian          Hindi  1970-01-01   1959-03-13   \n",
       "20544   28958   Bollywood / Indian          Hindi  1970-01-01   1955-05-13   \n",
       "20545   30459   Bollywood / Indian          Hindi  1970-01-01   1958-03-28   \n",
       "20546  371669            Wrestling        English  2023-02-10   2023-02-09   \n",
       "20547  371816            Wrestling        English  2023-02-14   2023-02-13   \n",
       "\n",
       "         run_time                                          storyline  \\\n",
       "0      105.000000  Doc\\r\\n facilitates a fragile truce between th...   \n",
       "1       84.000000  Caterer\\r\\n Goldy Berry reunites with detectiv...   \n",
       "2      107.000000  As the world searches for a cure to a disastro...   \n",
       "3      139.000000  The life of a young man and his struggles agai...   \n",
       "4      122.000000  A man named Kalidas gets stranded due to the p...   \n",
       "...           ...                                                ...   \n",
       "20543  103.591748                                                NaN   \n",
       "20544  159.000000  Devdas and Parvati had been inseparable as chi...   \n",
       "20545  110.000000  While driving his car on a rainy night, Anand'...   \n",
       "20546   99.968045                                                NaN   \n",
       "20547  100.564674                                                NaN   \n",
       "\n",
       "                                            title    views  \\\n",
       "0                                    Little Dixie   2794.0   \n",
       "1      Grilling Season: A Curious Caterer Mystery   1002.0   \n",
       "2                                    In the Earth  14419.0   \n",
       "3                                          Vaathi   4878.0   \n",
       "4                                           Alone   2438.0   \n",
       "...                                           ...      ...   \n",
       "20543                                  Bhai-Bahen   6219.0   \n",
       "20544                                      Devdas  16376.0   \n",
       "20545                                   Madhumati   7220.0   \n",
       "20546                       TNA.Impact 2023-02-09   1419.0   \n",
       "20547                          WWE Raw 2023-02-13   6697.0   \n",
       "\n",
       "                                                  writer  \n",
       "0                                              John Swab  \n",
       "1                                 John Christian Plummer  \n",
       "2                                           Ben Wheatley  \n",
       "3                                           Venky Atluri  \n",
       "4                                       Rajesh Jayaraman  \n",
       "...                                                  ...  \n",
       "20543             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20544  Rajinder Singh Bedi, Saratchandra Chatterjee, ...  \n",
       "20545             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20546             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20547             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "\n",
       "[20548 rows x 15 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_3"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用线性回归模型预测缺失值的效果取决于建立模型时所选用的关联属性，以及所选属性与缺失属性之间的线性关系。如果线性关系较为明显，那么使用线性回归模型填补缺失值的效果可能会比较好。但如果关联属性之间的线性关系比较弱或缺失属性与关联属性之间的线性关系不明显，填补所得的缺失值也可能会不够准确。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.4 通过数据对象之间的相似性来填补缺失值"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用K近邻算法，通过数据对象之间的相似性来填补缺失值。\n",
    "\n",
    "在进行K近邻算法之前，先将标称属性数值化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# K近邻算法\n",
    "\n",
    "df_4 = df.copy()\n",
    "\n",
    "df_4, mapping = encode(df_4, nominal_attributes)\n",
    "\n",
    "reg_attr = ['IMDb-rating', 'downloads', 'run_time', 'views', 'appropriate_for', 'director', 'industry', 'language', 'writer']\n",
    "\n",
    "imputer = KNNImputer(n_neighbors=5)\n",
    "completed = pd.DataFrame(imputer.fit_transform(df_4[reg_attr]), columns=reg_attr)\n",
    "df_4[num_attr] = completed[num_attr]\n",
    "\n",
    "df_4 = decode(df_4, nominal_attributes, mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 20548 entries, 0 to 20547\n",
      "Data columns (total 15 columns):\n",
      " #   Column           Non-Null Count  Dtype         \n",
      "---  ------           --------------  -----         \n",
      " 0   Unnamed: 0       20548 non-null  int64         \n",
      " 1   IMDb-rating      20548 non-null  float64       \n",
      " 2   appropriate_for  20548 non-null  object        \n",
      " 3   director         20548 non-null  object        \n",
      " 4   downloads        20548 non-null  float64       \n",
      " 5   id               20548 non-null  int64         \n",
      " 6   industry         20548 non-null  object        \n",
      " 7   language         20548 non-null  object        \n",
      " 8   posted_date      20547 non-null  datetime64[ns]\n",
      " 9   release_date     20547 non-null  datetime64[ns]\n",
      " 10  run_time         20548 non-null  float64       \n",
      " 11  storyline        18847 non-null  object        \n",
      " 12  title            20547 non-null  object        \n",
      " 13  views            20548 non-null  float64       \n",
      " 14  writer           20548 non-null  object        \n",
      "dtypes: datetime64[ns](2), float64(4), int64(2), object(7)\n",
      "memory usage: 2.4+ MB\n"
     ]
    }
   ],
   "source": [
    "df_4.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>IMDb-rating</th>\n",
       "      <th>appropriate_for</th>\n",
       "      <th>director</th>\n",
       "      <th>downloads</th>\n",
       "      <th>id</th>\n",
       "      <th>industry</th>\n",
       "      <th>language</th>\n",
       "      <th>posted_date</th>\n",
       "      <th>release_date</th>\n",
       "      <th>run_time</th>\n",
       "      <th>storyline</th>\n",
       "      <th>title</th>\n",
       "      <th>views</th>\n",
       "      <th>writer</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>4.80</td>\n",
       "      <td>R</td>\n",
       "      <td>John Swab</td>\n",
       "      <td>304.0</td>\n",
       "      <td>372092</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-28</td>\n",
       "      <td>105.0</td>\n",
       "      <td>Doc\\r\\n facilitates a fragile truce between th...</td>\n",
       "      <td>Little Dixie</td>\n",
       "      <td>2794.0</td>\n",
       "      <td>John Swab</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>6.40</td>\n",
       "      <td>TV-PG</td>\n",
       "      <td>Paul Ziller</td>\n",
       "      <td>73.0</td>\n",
       "      <td>372091</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-05</td>\n",
       "      <td>84.0</td>\n",
       "      <td>Caterer\\r\\n Goldy Berry reunites with detectiv...</td>\n",
       "      <td>Grilling Season: A Curious Caterer Mystery</td>\n",
       "      <td>1002.0</td>\n",
       "      <td>John Christian Plummer</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>5.20</td>\n",
       "      <td>R</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "      <td>1427.0</td>\n",
       "      <td>343381</td>\n",
       "      <td>Hollywood / English</td>\n",
       "      <td>English,Hindi</td>\n",
       "      <td>2021-04-20</td>\n",
       "      <td>2021-06-18</td>\n",
       "      <td>107.0</td>\n",
       "      <td>As the world searches for a cure to a disastro...</td>\n",
       "      <td>In the Earth</td>\n",
       "      <td>14419.0</td>\n",
       "      <td>Ben Wheatley</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>8.10</td>\n",
       "      <td>18+</td>\n",
       "      <td>Venky Atluri</td>\n",
       "      <td>1549.0</td>\n",
       "      <td>372090</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-02-17</td>\n",
       "      <td>139.0</td>\n",
       "      <td>The life of a young man and his struggles agai...</td>\n",
       "      <td>Vaathi</td>\n",
       "      <td>4878.0</td>\n",
       "      <td>Venky Atluri</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>4.60</td>\n",
       "      <td>18+</td>\n",
       "      <td>Shaji Kailas</td>\n",
       "      <td>657.0</td>\n",
       "      <td>372089</td>\n",
       "      <td>Tollywood</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>2023-02-20</td>\n",
       "      <td>2023-01-26</td>\n",
       "      <td>122.0</td>\n",
       "      <td>A man named Kalidas gets stranded due to the p...</td>\n",
       "      <td>Alone</td>\n",
       "      <td>2438.0</td>\n",
       "      <td>Rajesh Jayaraman</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20543</th>\n",
       "      <td>20543</td>\n",
       "      <td>7.90</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>28957</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1959-03-13</td>\n",
       "      <td>139.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Bhai-Bahen</td>\n",
       "      <td>6219.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20544</th>\n",
       "      <td>20544</td>\n",
       "      <td>7.70</td>\n",
       "      <td>18+</td>\n",
       "      <td>Bimal Roy</td>\n",
       "      <td>6080.0</td>\n",
       "      <td>28958</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1955-05-13</td>\n",
       "      <td>159.0</td>\n",
       "      <td>Devdas and Parvati had been inseparable as chi...</td>\n",
       "      <td>Devdas</td>\n",
       "      <td>16376.0</td>\n",
       "      <td>Rajinder Singh Bedi, Saratchandra Chatterjee, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20545</th>\n",
       "      <td>20545</td>\n",
       "      <td>8.00</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>3276.0</td>\n",
       "      <td>30459</td>\n",
       "      <td>Bollywood / Indian</td>\n",
       "      <td>Hindi</td>\n",
       "      <td>1970-01-01</td>\n",
       "      <td>1958-03-28</td>\n",
       "      <td>110.0</td>\n",
       "      <td>While driving his car on a rainy night, Anand'...</td>\n",
       "      <td>Madhumati</td>\n",
       "      <td>7220.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20546</th>\n",
       "      <td>20546</td>\n",
       "      <td>8.46</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>309.0</td>\n",
       "      <td>371669</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-10</td>\n",
       "      <td>2023-02-09</td>\n",
       "      <td>101.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>TNA.Impact 2023-02-09</td>\n",
       "      <td>1419.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20547</th>\n",
       "      <td>20547</td>\n",
       "      <td>7.62</td>\n",
       "      <td>18+</td>\n",
       "      <td>Biren Nag</td>\n",
       "      <td>2613.0</td>\n",
       "      <td>371816</td>\n",
       "      <td>Wrestling</td>\n",
       "      <td>English</td>\n",
       "      <td>2023-02-14</td>\n",
       "      <td>2023-02-13</td>\n",
       "      <td>141.8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>WWE Raw 2023-02-13</td>\n",
       "      <td>6697.0</td>\n",
       "      <td>Khwaja Ahmad Abbas, Khwaja Ahmad Abbas</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20548 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Unnamed: 0  IMDb-rating appropriate_for      director  downloads  \\\n",
       "0               0         4.80               R     John Swab      304.0   \n",
       "1               1         6.40           TV-PG   Paul Ziller       73.0   \n",
       "2               2         5.20               R  Ben Wheatley     1427.0   \n",
       "3               3         8.10             18+  Venky Atluri     1549.0   \n",
       "4               4         4.60             18+  Shaji Kailas      657.0   \n",
       "...           ...          ...             ...           ...        ...   \n",
       "20543       20543         7.90             18+     Biren Nag     1998.0   \n",
       "20544       20544         7.70             18+     Bimal Roy     6080.0   \n",
       "20545       20545         8.00             18+     Biren Nag     3276.0   \n",
       "20546       20546         8.46             18+     Biren Nag      309.0   \n",
       "20547       20547         7.62             18+     Biren Nag     2613.0   \n",
       "\n",
       "           id             industry       language posted_date release_date  \\\n",
       "0      372092  Hollywood / English        English  2023-02-20   2023-01-28   \n",
       "1      372091  Hollywood / English        English  2023-02-20   2023-02-05   \n",
       "2      343381  Hollywood / English  English,Hindi  2021-04-20   2021-06-18   \n",
       "3      372090            Tollywood          Hindi  2023-02-20   2023-02-17   \n",
       "4      372089            Tollywood          Hindi  2023-02-20   2023-01-26   \n",
       "...       ...                  ...            ...         ...          ...   \n",
       "20543   28957   Bollywood / Indian          Hindi  1970-01-01   1959-03-13   \n",
       "20544   28958   Bollywood / Indian          Hindi  1970-01-01   1955-05-13   \n",
       "20545   30459   Bollywood / Indian          Hindi  1970-01-01   1958-03-28   \n",
       "20546  371669            Wrestling        English  2023-02-10   2023-02-09   \n",
       "20547  371816            Wrestling        English  2023-02-14   2023-02-13   \n",
       "\n",
       "       run_time                                          storyline  \\\n",
       "0         105.0  Doc\\r\\n facilitates a fragile truce between th...   \n",
       "1          84.0  Caterer\\r\\n Goldy Berry reunites with detectiv...   \n",
       "2         107.0  As the world searches for a cure to a disastro...   \n",
       "3         139.0  The life of a young man and his struggles agai...   \n",
       "4         122.0  A man named Kalidas gets stranded due to the p...   \n",
       "...         ...                                                ...   \n",
       "20543     139.0                                                NaN   \n",
       "20544     159.0  Devdas and Parvati had been inseparable as chi...   \n",
       "20545     110.0  While driving his car on a rainy night, Anand'...   \n",
       "20546     101.0                                                NaN   \n",
       "20547     141.8                                                NaN   \n",
       "\n",
       "                                            title    views  \\\n",
       "0                                    Little Dixie   2794.0   \n",
       "1      Grilling Season: A Curious Caterer Mystery   1002.0   \n",
       "2                                    In the Earth  14419.0   \n",
       "3                                          Vaathi   4878.0   \n",
       "4                                           Alone   2438.0   \n",
       "...                                           ...      ...   \n",
       "20543                                  Bhai-Bahen   6219.0   \n",
       "20544                                      Devdas  16376.0   \n",
       "20545                                   Madhumati   7220.0   \n",
       "20546                       TNA.Impact 2023-02-09   1419.0   \n",
       "20547                          WWE Raw 2023-02-13   6697.0   \n",
       "\n",
       "                                                  writer  \n",
       "0                                              John Swab  \n",
       "1                                 John Christian Plummer  \n",
       "2                                           Ben Wheatley  \n",
       "3                                           Venky Atluri  \n",
       "4                                       Rajesh Jayaraman  \n",
       "...                                                  ...  \n",
       "20543             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20544  Rajinder Singh Bedi, Saratchandra Chatterjee, ...  \n",
       "20545             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20546             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "20547             Khwaja Ahmad Abbas, Khwaja Ahmad Abbas  \n",
       "\n",
       "[20548 rows x 15 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_4"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用K近邻算法预测缺失值的效果则取决于所选取的K值，以及缺失属性与其他属性之间的相似度计算方式。如果选取的K值较小，那么填补所得的缺失值可能会受到周围邻居对象的个数和特征的影响过大，甚至导致过拟合；如果选取的K值较大，那么填补所得的缺失值可能会比较平稳，但也可能会失去一定的灵敏性。而且，如何计算相似度也会影响填补效果，不同的相似度计算方法可能适用于不同类型的数据。因此在使用K近邻算法预测缺失值时需要根据实际情况进行选择和调整。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据集2：GitHub Dataset\n",
    "\n",
    "**数据来源：** [GitHub Dataset](https://www.kaggle.com/datasets/nikhil25803/github-dataset?select=repository_data.csv)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 数据摘要和可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = pd.read_csv(\"repository_data.csv\")\n",
    "# df2 = pd.read_csv(\"repository_data_truncated.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2917951 entries, 0 to 2917950\n",
      "Data columns (total 10 columns):\n",
      " #   Column            Dtype  \n",
      "---  ------            -----  \n",
      " 0   name              object \n",
      " 1   stars_count       int64  \n",
      " 2   forks_count       int64  \n",
      " 3   watchers          int64  \n",
      " 4   pull_requests     int64  \n",
      " 5   primary_language  object \n",
      " 6   languages_used    object \n",
      " 7   commit_count      float64\n",
      " 8   created_at        object \n",
      " 9   licence           object \n",
      "dtypes: float64(1), int64(4), object(5)\n",
      "memory usage: 222.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df2.info()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对标称属性和数值属性进行摘要，包括如下列：\n",
    "\n",
    "标称属性：'primary_language', 'languages_used', 'licence'\n",
    "\n",
    "数值属性：'stars_count', 'forks_count', 'watchers', 'pull_requests', 'commit_count'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def to_list(x):\n",
    "    try:\n",
    "        res = ast.literal_eval(x)\n",
    "    except:\n",
    "        res = []\n",
    "    return res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "primary_language\n",
      "JavaScript              451954\n",
      "Python                  451473\n",
      "Java                    202394\n",
      "C++                     150066\n",
      "PHP                     116058\n",
      "                         ...  \n",
      "LoomScript                   1\n",
      "Ragel in Ruby Host           1\n",
      "Edje Data Collection         1\n",
      "Sieve                        1\n",
      "Ox                           1\n",
      "Name: primary_language, Length: 497, dtype: int64\n",
      "\n",
      "languages_used\n",
      "JavaScript                  828559\n",
      "Python                      686604\n",
      "HTML                        594732\n",
      "Shell                       580840\n",
      "CSS                         464495\n",
      "                             ...  \n",
      "OpenAPI Specification v2         1\n",
      "Curry                            1\n",
      "Scenic                           1\n",
      "Valve Data Format                1\n",
      "Prisma                           1\n",
      "Name: languages_used, Length: 528, dtype: int64\n",
      "\n",
      "licence\n",
      "MIT License                                                   784251\n",
      "Apache License 2.0                                            210698\n",
      "Other                                                         167987\n",
      "GNU General Public License v3.0                               159443\n",
      "BSD 3-Clause \"New\" or \"Revised\" License                        47078\n",
      "GNU General Public License v2.0                                43297\n",
      "GNU Affero General Public License v3.0                         21554\n",
      "BSD 2-Clause \"Simplified\" License                              16819\n",
      "The Unlicense                                                  14400\n",
      "GNU Lesser General Public License v3.0                         14002\n",
      "Mozilla Public License 2.0                                     10668\n",
      "Creative Commons Zero v1.0 Universal                           10353\n",
      "ISC License                                                     8232\n",
      "GNU Lesser General Public License v2.1                          6168\n",
      "Eclipse Public License 1.0                                      3699\n",
      "Do What The F*ck You Want To Public License                     3493\n",
      "Creative Commons Attribution 4.0 International                  3292\n",
      "Creative Commons Attribution Share Alike 4.0 International      2664\n",
      "MIT No Attribution                                              2193\n",
      "zlib License                                                    1512\n",
      "Boost Software License 1.0                                      1421\n",
      "Eclipse Public License 2.0                                      1206\n",
      "BSD Zero Clause License                                          770\n",
      "SIL Open Font License 1.1                                        761\n",
      "Artistic License 2.0                                             685\n",
      "Open Software License 3.0                                        644\n",
      "Microsoft Public License                                         470\n",
      "European Union Public License 1.2                                429\n",
      "BSD 3-Clause Clear License                                       295\n",
      "LaTeX Project Public License v1.3c                               266\n",
      "BSD 4-Clause \"Original\" or \"Old\" License                         251\n",
      "Universal Permissive License v1.0                                193\n",
      "Academic Free License v3.0                                       143\n",
      "European Union Public License 1.1                                 93\n",
      "University of Illinois/NCSA Open Source License                   90\n",
      "PostgreSQL License                                                66\n",
      "Open Data Commons Open Database License v1.0                      57\n",
      "Educational Community License v2.0                                25\n",
      "Mulan Permissive Software License, Version 2                      20\n",
      "Vim License                                                       20\n",
      "CeCILL Free Software License Agreement v2.1                       19\n",
      "Microsoft Reciprocal License                                      15\n",
      "CERN Open Hardware Licence Version 2 - Permissive                  4\n",
      "CERN Open Hardware Licence Version 2 - Strongly Reciprocal         2\n",
      "CERN Open Hardware Licence Version 2 - Weakly Reciprocal           2\n",
      "GNU Free Documentation License v1.3                                1\n",
      "Name: licence, dtype: int64\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 标称属性\n",
    "nominal_attributes2 = ['primary_language', 'languages_used', 'licence']\n",
    "for attr in nominal_attributes2:\n",
    "    if attr == 'languages_used':\n",
    "        exploded = df2[attr].apply(to_list).explode(attr)\n",
    "        freq = exploded.value_counts()\n",
    "    else:\n",
    "        freq = df2[attr].value_counts()\n",
    "    print(attr)\n",
    "    print(freq)\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "stars_count\n",
      "缺失值个数： 0\n",
      "最小值： 2\n",
      "下四分位数： 7.0\n",
      "中位数： 12.0\n",
      "上四分位数： 30.0\n",
      "最大值： 359805\n",
      "\n",
      "forks_count\n",
      "缺失值个数： 0\n",
      "最小值： 0\n",
      "下四分位数： 1.0\n",
      "中位数： 4.0\n",
      "上四分位数： 11.0\n",
      "最大值： 242208\n",
      "\n",
      "watchers\n",
      "缺失值个数： 0\n",
      "最小值： 0\n",
      "下四分位数： 2.0\n",
      "中位数： 3.0\n",
      "上四分位数： 6.0\n",
      "最大值： 9544\n",
      "\n",
      "pull_requests\n",
      "缺失值个数： 0\n",
      "最小值： 0\n",
      "下四分位数： 0.0\n",
      "中位数： 1.0\n",
      "上四分位数： 6.0\n",
      "最大值： 301585\n",
      "\n",
      "commit_count\n",
      "缺失值个数： 1921\n",
      "最小值： 1.0\n",
      "下四分位数： 9.0\n",
      "中位数： 27.0\n",
      "上四分位数： 89.0\n",
      "最大值： 4314502.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 数值属性\n",
    "numeric_attributes2 = ['stars_count', 'forks_count', 'watchers', 'pull_requests', 'commit_count']\n",
    "for attribute in numeric_attributes2:\n",
    "    # 5数概括\n",
    "    q1 = df2[attribute].quantile(0.25)\n",
    "    median = df2[attribute].median()\n",
    "    q3 = df2[attribute].quantile(0.75)\n",
    "    minimum = df2[attribute].min()\n",
    "    maximum = df2[attribute].max()\n",
    "    missing_values = df2[attribute].isnull().sum()\n",
    "    print(attribute)\n",
    "    print('缺失值个数：', missing_values)\n",
    "    print('最小值：', minimum)\n",
    "    print('下四分位数：', q1)\n",
    "    print('中位数：', median)\n",
    "    print('上四分位数：', q3)\n",
    "    print('最大值：', maximum)\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<Axes: title={'center': 'stars_count'}>,\n",
       "        <Axes: title={'center': 'forks_count'}>],\n",
       "       [<Axes: title={'center': 'watchers'}>,\n",
       "        <Axes: title={'center': 'pull_requests'}>],\n",
       "       [<Axes: title={'center': 'commit_count'}>, <Axes: >]], dtype=object)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAIgCAYAAACoFdmRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtOUlEQVR4nO3deXgUVdr//08nJJ09EMIWCSHigGgAEVDDHlk0AiMiioIIrsNMQBnGZ0ZBJfCgcUG/OCpxY1geRZBhERCROGwqoLLJouLCqhCWAEkI0gnJ+f3hLz02SZAO6XR36v26rlxXuvpU1X2fXk7fXVWnbcYYIwAAAACwkABvBwAAAAAA1Y1CCAAAAIDlUAgBAAAAsBwKIQAAAACWQyEEAAAAwHIohAAAAABYDoUQAAAAAMuhEAIAAABgORRCAAAAACyHQgheM3v2bE2ZMsXbYfi1ZcuWKT093dthAIAlzJ07V1deeaVCQ0Nls9m0devWi97m8OHDFRERcfHB1QDr1q1Tenq6Tp486e1QYBEUQvAaCqGLt2zZMk2YMMHbYQBAjXf06FENHTpUzZo10/Lly7V+/Xo1b97c22HVKOvWrdOECRMohFBtank7AKCq/fLLLwoNDfV2GACAGuS7775TUVGR7rrrLnXr1u2it3f69GmFhYVVQWQAKosjQvCYo0eP6sEHH1R8fLzsdrvq1aunTp066eOPP1b37t31wQcfaN++fbLZbM6/UhMmTNC1116rmJgYRUVF6eqrr9a0adNkjHHZR9OmTdW3b18tWLBAbdu2VUhIiPMIybx583TttdcqOjpaYWFhuvTSS3Xvvfe6ncfs2bOVnJysiIgIRURE6KqrrtK0adNc2vzrX/9SmzZtFBISopiYGN1yyy365ptvXNp0795d3bt3L7P94cOHq2nTps7be/fulc1m0+TJk/Xiiy8qMTFRERERSk5O1oYNG1zWe/XVVyXJpQ/37t3rdo4AgIoNHz5cnTt3liQNGjRINpvN+X6+ePFiJScnKywsTJGRkerVq5fWr1/vsn56erpsNps2b96sgQMHqk6dOmrWrFmF+/vss88UGxurvn37qqCgQJK0cuVKde/eXXXr1lVoaKiaNGmiW2+9VadPn3Yrl+XLl6tHjx7OsbFly5bKyMhwaXMhOZ07dp2b62/ZbDaNHDlS//d//6eWLVsqLCxMbdq00dKlS13W+5//+R9JUmJionNMW716tVv5Ae7giBA8ZujQodq8ebOeeuopNW/eXCdPntTmzZuVk5OjqVOn6sEHH9SPP/6ohQsXlll37969+tOf/qQmTZpIkjZs2KBRo0bp559/1pNPPunSdvPmzfrmm2/0+OOPKzExUeHh4Vq/fr0GDRqkQYMGKT09XSEhIdq3b59WrlzpVg5PPvmk/vd//1cDBgzQ3/72N0VHR2vHjh3at2+fs01GRobGjh2rO++8UxkZGcrJyVF6erqSk5P15Zdf6g9/+EMlek969dVXdfnllztPH3ziiSd00003ac+ePYqOjtYTTzyhgoIC/fvf/3YZoBo1alSp/QEAyvfEE0/ommuuUVpamp5++mmlpKQoKipKs2fP1pAhQ9S7d2+9++67cjgceu6559S9e3f95z//cRZPpQYMGKA77rhDI0aMcBY453rvvfd09913695779XLL7+swMBA7d27V3369FGXLl30r3/9S7Vr19bPP/+s5cuXq7Cw8IKPLE2bNk0PPPCAunXrptdee03169fXd999px07djjbuJvThfrggw/05ZdfauLEiYqIiNBzzz2nW265Rbt27dKll16q+++/X8ePH9fLL7+sBQsWOMeyK664olL7Ay6IATwkIiLCjB49usL7+/TpYxISEn53O8XFxaaoqMhMnDjR1K1b15SUlDjvS0hIMIGBgWbXrl0u60yePNlIMidPnqx0/Lt37zaBgYFmyJAhFbY5ceKECQ0NNTfddJPL8v379xu73W4GDx7sXNatWzfTrVu3MtsYNmyYSz/s2bPHSDKtWrUyZ8+edS7/4osvjCTz7rvvOpelpaUZXsYA4HmrVq0yksy8efOMMb+OTXFxcaZVq1amuLjY2S4/P9/Ur1/fdOzY0bls/PjxRpJ58skny2x32LBhJjw83BhjzDPPPGMCAwPNs88+69Lm3//+t5Fktm7dWun48/PzTVRUlOncubPLOPpb7uR07thVqjTX35JkGjRoYPLy8pzLsrOzTUBAgMnIyHAue/75540ks2fPnkpmCbjHa6fGrV27Vv369VNcXJxsNpsWLVrk9jaMMZo8ebKaN28uu92u+Ph4Pf3001UfLCrlmmuu0YwZMzRp0iRt2LBBRUVFF7zuypUr1bNnT0VHRyswMFBBQUF68sknlZOToyNHjri0bd26dZkLVjt06CBJuv322/Xee+/p559/djv+rKwsFRcXKy0trcI269ev1y+//KLhw4e7LI+Pj9f111+v//znP27vt1SfPn0UGBjovN26dWtJcjkaBcB3MK5Zy65du3Tw4EENHTpUAQH//TgVERGhW2+9VRs2bChz2tqtt95a7raMMfrTn/6k8ePHa/bs2fr73//ucv9VV12l4OBgPfjgg5o5c6Z2797tdrzr1q1TXl6e/vKXv5Q5de1icrpQKSkpioyMdN5u0KCB6tevz5gGr/JaIVRQUKA2bdrolVdeqfQ2Hn74Yb311luaPHmyvv32Wy1ZskTXXHNNFUaJizF37lwNGzZMb731lpKTkxUTE6O7775b2dnZ513viy++UO/evSVJb775pj777DN9+eWXGjdunKRfJ0P4rfJOBevatasWLVqks2fP6u6771bjxo2VlJSkd99994LjP3r0qCSpcePGFbbJycmpMIa4uDjn/ZVRt25dl9t2u11S2fwB+AbGNWv5vff/kpISnThxwmV5RacuFxYWOqfmTk1NLXN/s2bN9PHHH6t+/fpKS0tTs2bN1KxZM7300ksXHG9VjGnl5XShzh3TpF/HNcY0eJPXrhFKTU0t98VeqrCwUI8//rjeeecdnTx5UklJSXr22WedFyd+8803yszM1I4dO9SiRYtqihruiI2N1ZQpUzRlyhTt379fixcv1qOPPqojR45o+fLlFa43Z84cBQUFaenSpQoJCXEur+jb1Yq+2br55pt18803y+FwaMOGDcrIyNDgwYPVtGlTJScn/2789erVkyT99NNPio+PL7dN6Rv7oUOHytx38OBBxcbGOm+HhIQoNze3TLtjx479biwAfB/jmrX83vt/QECA6tSp47K8ovHKbrdr1apVuuGGG9SzZ08tX768zLpdunRRly5dVFxcrI0bN+rll1/W6NGj1aBBA91xxx2/G+9vx7SqyCkkJEQOh6NMO8Y0+BOfnTXunnvu0WeffaY5c+Zo27Ztuu2223TjjTfq+++/lyQtWbJEl156qZYuXarExEQ1bdrUeaEdfE+TJk00cuRI9erVS5s3b5ZU8TdBNptNtWrVcjkt7JdfftH//d//VWrfdrtd3bp107PPPitJ2rJlywWt17t3bwUGBiozM7PCNsnJyQoNDdXbb7/tsvynn37SypUr1aNHD+eypk2b6rvvvnMZ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sfpCv95www1m+vTpZsOGDSYmJsbExcWZRo0amXfeecfZr77Sp4sXLzbz5s0zdevWNTfddJN54IEHTK1atUxYWJiZPHmyT/TnhcTpK/1pjDG5ubmmQYMG5o477jDbt2838+fPd3k9wb95elzzBF8eK899/VysZcuWmXHjxvnF2OuJ94rfy7+mvleWjrs7duwwW7duNX369DFNmjQxp06dcrapyY/9heRf0x57vyiErrnmGjNixAiXZZdffrl59NFHq2T748ePN23atCn3vpKSEtOwYUPzzDPPOJedOXPGREdHm9dee80YY8zJkydNUFCQmTNnjrPNzz//bAICAszy5cuNMcZ8/fXXRpLZsGGDs8369euNJPPtt98aY3594wkICDA///yzs827775r7Ha7yc3NLfNm5EuxGWPM1KlTTXR0tDlz5owz1oyMDBMXF2dKSkrMsGHDzM0331zRw+C1WI8cOWIkmQcffNDExcWZ4uJin+zXAwcOGElmzZo1zn711T41xpg6deqYAQMGmEaNGvlkf54bp6/3pzHG5fUE/+bpcc0T/GWsrGr+NPaWqsr3iooKISu8V5Z+PlizZo0xxnqP/bn5G1PzHnufPzWusLBQmzZtUu/evV2W9+7dW+vWrauy/Xz//feKi4tTYmKi7rjjDu3evVuStGfPHmVnZ7vs3263q1u3bs79b9q0SUVFRS5t4uLilJSU5Gyzfv16RUdH69prr3W2ue666xQdHe3SJikpSXFxcc42N9xwgxwOhzZt2lQmZl+Lbf369c5T437b5uDBg9q7d68kafXq1apfv76aN2+uBx54QEeOHHG29Vasubm5kqSePXvq4MGD+uSTT3yyX8+cOSNJiomJcfbrqVOnfK5Pa9WqpTlz5qigoECDBw/WoUOHfLI/z43TV/vzfK8n+KfqGtc8wR/Hyqrma7l6673CCu+VpZ8PYmJiJFnvsT83/1I16bH3+ULo2LFjKi4uVoMGDVyWN2jQQNnZ2VWyj2uvvVazZs3SRx99pDfffFPZ2dnq2LGjcnJynPs43/6zs7MVHBysOnXqnLdN/fr1y+y7fv36Lm3O3U+dOnUUHBxcbq6+Flt5bUpvZ2dnKzU1Ve+8845WrlypF154QV9++aWuv/56ORwOr8VqjNGYMWPUuXNnderUSZKc58P6Ur/Wr1/fGWdSUpJznTZt2vhM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Vyk0NFS1a9fWddddp8WLF5eJc/ny5br66qsVGhqqyy+/XP/617/KtMnOztaf/vQnNW7cWMHBwUpMTNSECRN09uxZZ5u9e/fKZrPpueee06RJk5SYmCi73a5Vq1appKREkyZNUosWLZzxtG7dWi+99FLlOxgAcMHS09Nls9m0ZcsWDRgwQFFRUYqOjtZdd92lo0ePOtvZbDalp6eXWb9p06YaPny4x+LavHmzBg4cqDp16qhZs2aSfr2uY+rUqc6xrE6dOho4cKDzN55KGWP03HPPKSEhQSEhIbr66qv14Ycfqnv37s4iTZJmzJjhMlaWWr16tWw2m1avXu2y/OOPP1aPHj0UFRWlsLAwderUSf/5z39c2hw9elQPPvig4uPjZbfbVa9ePXXq1Ekff/yxJKl79+764IMPtG/fPpfxulRmZqbatGmjiIgIRUZG6vLLL9fYsWMvslcBP5o+GzXTlVdeqUaNGunjjz/WbbfdJunXN9XQ0FB9/fXXOnjwoOLi4nT27FmtWbNGI0aMkPTrb8HcdNNNGj16tMLDw/Xtt9/q2Wef1RdffKGVK1dKkp544gkVFBTo3//+t9avX+/cZ+kFfcOHD9fbb7+t++67TxMnTlRwcLA2b95c5s3/q6++0t/+9jc9+uijatCggd566y3dd999uuyyy9S1a1dJvxZB11xzjQICAvTkk0+qWbNmWr9+vSZNmqS9e/dq+vTpLtv85z//qebNm2vy5MmKiorSH/7wBz333HNKT0/X448/rq5du6qoqEjffvutTp486YmuBwBU4JZbbtHtt9+uESNGaOfOnXriiSf09ddf6/PPP1dQUJDX4howYIDuuOMOjRgxwvnF35/+9CfNmDFDDz30kJ599lkdP35cEydOVMeOHfXVV185Z8+aMGGCJkyYoPvuu08DBw7UgQMH9MADD6i4uNg5W6q73n77bd199926+eabNXPmTAUFBen111/XDTfcoI8++kg9evSQJA0dOlSbN2/WU089pebNm+vkyZPavHmzcnJyJElTp07Vgw8+qB9//FELFy502cecOXP0l7/8RaNGjdLkyZMVEBCgH374QV9//XVluxH4rws+iQ7wkLvuustceumlzts9e/Y0DzzwgKlTp46ZOXOmMcaYzz77zEgyK1asKLN+SUmJKSoqMmvWrDGSzFdffeW8Ly0tzZT3NF+7dq2RZMaNG3fe2BISEkxISIjzAlljfj33NSYmxvzpT39yLvvTn/5kIiIiXNoZY8zkyZONJOd59Hv27DGSTLNmzUxhYaFL2759+5qrrrrqvPEAADyn9Pqdv/71ry7L33nnHSPJvP3228aYX6+lGD9+fJn1ExISnNcRGfPfa21WrVpVZh+VievJJ590Wb5+/Xojybzwwgsuyw8cOGBCQ0PN3//+d2OMMSdOnDAhISHmlltucWlXOrZ269bNuWz69OlGktmzZ49L23NzKSgoMDExMaZfv34u7YqLi02bNm3MNddc41wWERFhRo8efd4c+/TpYxISEsosHzlypKldu/Z51wUqy2unxq1du1b9+vVTXFycbDabFi1a5PY2jDGaPHmymjdvLrvdrvj4eD399NNVHyw8qkePHtq9e7f27NmjM2fO6NNPP9WNN96olJQU5/SLH3/8sex2uzp37ixJ2r17twYPHqyGDRsqMDBQQUFB6tatmyTpm2+++d19fvjhh5KktLS032171VVXqUmTJs7bISEhat68ufbt2+dctnTpUqWkpDiPXpX+lf4A4Zo1a1y2+cc//rHMt4rXXHONvvrqK/3lL3/RRx99pLy8vN+NDYDvYFyrOYYMGeJy+/bbb1etWrW0atUqL0X0q1tvvdXl9tKlS2Wz2XTXXXe5jD0NGzZUmzZtnKexrV+/XmfOnCmTV8eOHZWQkFCpWNatW6fjx49r2LBhLvsuKSnRjTfeqC+//NJ51Oqaa67RjBkzNGnSJG3YsEFFRUUXvJ9rrrlGJ0+e1J133qn3339fx44dq1S8QHm8dmpcQUGB2rRpo3vuuafMC/tCPfzww1qxYoUmT56sVq1aKTc3lxeIH+rZs6ekX4udxMREFRUV6frrr9fhw4f1v//7v877OnXqpNDQUJ06dUpdunRRSEiIJk2apObNmyssLEwHDhzQgAED9Msvv/zuPo8eParAwEDnj6OdT926dcsss9vtLvs5fPiwlixZUuEpE+c+L0tPz/utxx57TOHh4Xr77bf12muvKTAwUF27dtWzzz6r9u3b/26cALyLca3mOHdsqFWrlurWres8lctbzh07Dh8+LGNMhT8eeemll0qSM+7yxrwLGQfLU/qDmAMHDqywzfHjxxUeHq65c+dq0qRJeuutt/TEE08oIiJCt9xyi5577rnf3f/QoUN19uxZvfnmm7r11ltVUlKiDh06aNKkSerVq1elYgdKea0QSk1NdX5bXp7CwkI9/vjjeuedd3Ty5EklJSXp2WefdV7Q98033ygzM1M7duyo9Lmt8A2NGzdW8+bN9fHHH6tp06Zq3769ateurR49eugvf/mLPv/8c23YsEETJkyQJK1cuVIHDx7U6tWrnUeBJLl1LU29evVUXFys7OzscosSd8XGxqp169Z66qmnyr0/Li7O5fZvLwItVatWLY0ZM0ZjxozRyZMn9fHHH2vs2LG64YYbdODAgRo1OxBQEzGu1RzZ2dkuP2J99uxZ5eTkOL8Ys9vtcjgcZdbzdKF07tgRGxsrm82mTz75pNyZR0uXlcadnZ1dpk12drbLj0+GhIRIUpn8zi3IY2NjJUkvv/yyrrvuunLjLS3QYmNjNWXKFE2ZMkX79+/X4sWL9eijj+rIkSNavnx5hfmWuueee3TPPfeooKBAa9eu1fjx49W3b1999913lT6iBUg+PGvcPffco88++0xz5szRtm3bdNttt+nGG2/U999/L0lasmSJLr30Ui1dulSJiYlq2rSp7r//fh0/ftzLkaMyevbsqZUrVyorK8v5DU/z5s3VpEkTPfnkkyoqKnIeOSodCM5903/99dfLbLe0zblHiUo/rGRmZlZJ/KXTfjZr1kzt27cv83duIfR7ateurYEDByotLU3Hjx9nOlGgBmBc8x/vvPOOy+333ntPZ8+edRatTZs21bZt21zarFy5UqdOnaquECX9OvYYY/Tzzz+XO/a0atVKknTdddcpJCSkTF7r1q1zOc1bkrMoOje/c2dU7dSpk2rXrq2vv/663H23b99ewcHBZWJu0qSJRo4cqV69emnz5s3O5eeeaVGe8PBwpaamaty4cSosLNTOnTvP30HA7/DJWeN+/PFHvfvuu/rpp5+cHyAfeeQRLV++XNOnT9fTTz+t3bt3a9++fZo3b55mzZql4uJi/fWvf9XAgQOds4bBf/To0UNTp07VsWPHNGXKFJfl06dPV506dZxTZ3fs2FF16tTRiBEjNH78eAUFBemdd97RV199VWa7pYPAs88+q9TUVAUGBqp169bq0qWLhg4dqkmTJunw4cPq27ev7Ha7tmzZorCwMI0aNcqt+CdOnKisrCx17NhRDz30kFq0aKEzZ85o7969WrZsmV577TU1btz4vNvo16+fkpKS1L59e9WrV0/79u3TlClTlJCQoD/84Q9uxQPAtzCu+ZcFCxaoVq1a6tWrl3PWuDZt2uj222+X9OvpWk888YSefPJJdevWTV9//bVeeeUVRUdHV2ucnTp10oMPPqh77rlHGzduVNeuXRUeHq5Dhw7p008/VatWrfTnP/9ZderU0SOPPKJJkybp/vvv12233aYDBw4oPT29zKlpHTp0UIsWLfTII4/o7NmzqlOnjhYuXKhPP/3UpV1ERIRefvllDRs2TMePH9fAgQNVv359HT16VF999ZWOHj2qzMxM5ebmKiUlRYMHD9bll1+uyMhIffnll1q+fLkGDBjg3F6rVq20YMECZWZmql27dgoICFD79u31wAMPKDQ0VJ06dVKjRo2UnZ2tjIwMRUdHq0OHDtXSz6jBvDtXw68kmYULFzpvv/fee0aSCQ8Pd/mrVauWuf32240xxjzwwANGktm1a5dzvU2bNhlJ5ttvv63uFHCRTpw4YQICAkx4eLjLbGqlM/UMGDDApf26detMcnKyCQsLM/Xq1TP333+/2bx5c5lfgHY4HOb+++839erVMzabzWUmnOLiYvP//t//M0lJSSY4ONhER0eb5ORks2TJEuf6CQkJpk+fPmXi7datm8ssO8YYc/ToUfPQQw+ZxMREExQUZGJiYky7du3MuHHjzKlTp4wx/5017vnnny+zzRdeeMF07NjRxMbGmuDgYNOkSRNz3333mb1797rbnQC8jHHNP5XOzrZp0ybTr18/ExERYSIjI82dd95pDh8+7GzncDjM3//+dxMfH29CQ0NNt27dzNatWz0+a9zRo0fLvf9f//qXufbaa014eLgJDQ01zZo1M3fffbfZuHGjs01JSYnJyMgw8fHxJjg42LRu3dosWbKk3PHsu+++M7179zZRUVGmXr16ZtSoUeaDDz4ok4sxxqxZs8b06dPHxMTEmKCgIHPJJZeYPn36mHnz5hljjDlz5owZMWKEad26tYmKijKhoaGmRYsWZvz48aagoMC5nePHj5uBAwea2rVrO8drY4yZOXOmSUlJMQ0aNDDBwcEmLi7O3H777Wbbtm1u9SFQHpsxF/nTxlXAZrNp4cKF6t+/v6RffyxzyJAh2rlzpwIDA13aRkREqGHDhho/fryefvppl5lHfvnlF4WFhWnFihVcQAcA8BrGNf+Unp6uCRMm6OjR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4eHh+uMf/6iffvrJpc2JEyc0dOhQRUdHKzo6WkOHDtXJkyc9naJbMjIyZLPZNHr0aOcyK+T/888/66677lLdunUVFhamq666Sps2bXLeX5P74OzZs3r88ceVmJio0NBQXXrppZo4caJKSkqcbWpS/mvXrlW/fv0UFxcnm82mRYsWudxfnbnu379f/fr1U3h4uGJjY/XQQw+psLDQE2njAnl7XEtPT5fNZnP5a9iwofN+X31++tvravv27erWrZtCQ0N1ySWXaOLEiSqdp+r3chk+fHiZx+i6667zuVx87fONp3Pxl8clMzNTrVu3dv7YaXJysj788EO/e0w8yviBOXPmmKCgIPPmm2+ar7/+2jz88MMmPDzc7Nu3z9uhueWGG24w06dPNzt27DBbt241ffr0MU2aNDGnTp1ytnnmmWdMZGSkmT9/vtm+fbsZNGiQadSokcnLy3O2GTFihLnkkktMVlaW2bx5s0lJSTFt2rQxZ8+edba58cYbTVJSklm3bp1Zt26dSUpKMn379q3WfM/niy++ME2bNjWtW7c2Dz/8sHN5Tc//+PHjJiEhwQwfPtx8/vnnZs+ePebjjz82P/zwg7NNTe6DSZMmmbp165qlS5eaPXv2mHnz5pmIiAgzZcoUZ5ualP+yZcvMuHHjzPz5840ks3DhQpf7qyvXs2fPmqSkJJOSkmI2b95ssrKyTFxcnBk5cqTH+wDl84Vxbfz48ebKK680hw4dcv4dOXLEeb+vPj/96XWVm5trGjRoYO644w6zfft2M3/+fBMZGWkmT558QbkMGzbM3HjjjS6PUU5OjksbX8jFlz7fVEcu/vK4LF682HzwwQdm165dZteuXWbs2LEmKCjI7Nixw68eE0/yi0LommuuMSNGjHBZdvnll5tHH33USxFVjSNHjhhJZs2aNcYYY0pKSkzDhg3NM88842xz5swZEx0dbV577TVjjDEnT540QUFBZs6cOc42P//8swkICDDLly83xhjz9ddfG0lmw4YNzjbr1683ksy3335bHamdV35+vvnDH/5gsrKyTLdu3ZyFkBXy/8c//mE6d+5c4f01vQ/69Olj7r33XpdlAwYMMHfddZcxpmbnf+6HnOrMddmyZSYgIMD8/PPPzjbvvvuusdvtJjc31yP54vx8YVwbP368adOmTbn3+cvz09dfV1OnTjXR0dHmzJkzzjYZGRkmLi7OlJSUnDcXY379wH3zzTdXmL+v5uLNzzeezsUY/31cjDGmTp065q233vLrx6Qq+fypcYWFhdq0aZN69+7tsrx3795at26dl6KqGrm5uZKkmJgYSdKePXuUnZ3tkqvdble3bt2cuW7atElFRUUubeLi4pSUlORss379ekVHR+vaa691trnuuusUHR3tE32WlpamPn36qGfPni7LrZD/4sWL1b59e912222qX7++2rZtqzfffNN5f03vg86dO+s///mPvvvuO0nSV199pU8//VQ33XSTpJqf/29VZ67r169XUlKS4uLinG1uuOEGORwOl9MyUT18aVz7/vvvFRcXp8TERN1xxx3avXu3JP99fvpa3OvXr1e3bt1cfmzyhhtu0MGDB7V3794Lymn16tWqX7++mjdvrgceeEBHjhxx3ueruXjz842ncynlb49LcXGx5syZo4KCAiUnJ/v1Y1KVfL4QOnbsmIqLi9WgQQOX5Q0aNFB2draXorp4xhiNGTNGnTt3VlJSkiQ58zlfrtnZ2QoODladOnXO26Z+/fpl9lm/fn2v99mcOXO0efNmZWRklLnPCvnv3r1bmZmZ+sMf/qCPPvpII0aM0EMPPaRZs2ZJqvl98I9//EN33nmnLr/8cgUFBalt27YaPXq07rzzTkk1P//fqs5cs7Ozy+ynTp06Cg4O9pn+sBJfGdeuvfZazZo1Sx999JHefPNNZWdnq2PHjsrJyfHb56evxV1em9LbF5Jbamqq3nnnHa1cuVIvvPCCvvzyS11//fVyOBw+m4u3P994OhfJvx6X7du3KyIiQna7XSNGjNDChQt1xRVX+O1jUtVqeWzLVcxms7ncNsaUWeZPRo4cqW3btunTTz8tc19lcj23TXntvd1nBw4c0MMPP6wVK1YoJCSkwnY1NX9JKikpUfv27fX0009Lktq2baudO3cqMzNTd999t7NdTe2DuXPn6u2339bs2bN15ZVXauvWrRo9erTi4uI0bNgwZ7uamn95qitXf+kPK/H2uJaamur8v1WrVkpOTlazZs00c+ZM54Xf/vr89KW4y4ulonXPNWjQIOf/SUlJat++vRISEvTBBx9owIABPpmLL3y+8XQu/vS4tGjRQlu3btXJkyc1f/58DRs2TGvWrDnvur78mFQ1nz8iFBsbq8DAwDLV4JEjR8pUjv5i1KhRWrx4sVatWqXGjRs7l5fO1nO+XBs2bKjCwkKdOHHivG0OHz5cZr9Hjx71ap9t2rRJR44cUbt27VSrVi3VqlVLa9as0T//+U/VqlWrwsq/puQvSY0aNdIVV1zhsqxly5bav3+/pJr/HPif//kfPfroo7rjjjvUqlUrDR06VH/961+dRwhrev6/VZ25NmzYsMx+Tpw4oaKiIp/pDyvx1XEtPDxcrVq10vfff++3z09fi7u8NqWnUFXmsW7UqJESEhL0/fff+2QuvvD5xtO5lMeXH5fg4GBddtllat++vTIyMtSmTRu99NJLfvmYeILPF0LBwcFq166dsrKyXJZnZWWpY8eOXoqqcowxGjlypBYsWKCVK1cqMTHR5f7ExEQ1bNjQJdfCwkKtWbPGmWu7du0UFBTk0ubQoUPasWOHs01ycrJyc3P1xRdfONt8/vnnys3N9Wqf9ejRQ9u3b9fWrVudf+3bt9eQIUO0detWXXrppTU6f0nq1KlTmWk4v/vuOyUkJEiq+c+B06dPKyDA9W0nMDDQOX12Tc//t6oz1+TkZO3YsUOHDh1ytlmxYoXsdrvatWvn0TxRlq+Oaw6HQ998840aNWrkt89PX4s7OTlZa9eudZkmeMWKFYqLi1PTpk3dyk2ScnJydODAATVq1MincklISPCZzzeezqU8vvq4lPccM8bI4XD41WNSmdfKBavq2Rc8oXSa0WnTppmvv/7ajB492oSHh5u9e/d6OzS3/PnPfzbR0dFm9erVLlMunj592tnmmWeeMdHR0WbBggVm+/bt5s477yx3KsPGjRubjz/+2GzevNlcf/315U5l2Lp1a7N+/Xqzfv1606pVK69PnVye384aZ0z15j9s2DCTkJDgsuypp54qM2tPVfriiy9MrVq1zFNPPWW+//57884775iwsDDz9ttvO9t4qg/i4+PNFVdc4bHcLsSwYcPMJZdc4pw+e8GCBSY2Ntb8/e9/d7apSa+B/Px8s2XLFrNlyxYjybz44otmy5YtzimSqyvX0qlLe/ToYTZv3mw+/vhj07hxY6bP9iJfGNf+9re/mdWrV5vdu3ebDRs2mL59+5rIyEhnDL76/PSn19XJkydNgwYNzJ133mm2b99uFixYYKKiopxTAp8vl/z8fPO3v/3NrFu3zuzZs8esWrXKJCcnm0suucTncvGlzzeezsWfHpfHHnvMrF271uzZs8ds27bNjB071gQEBJgVK1b41WPiSX5RCBljzKuvvmoSEhJMcHCwufrqq12mMfQXksr9mz59urNNSUmJGT9+vGnYsKGx2+2ma9euZvv27S7b+eWXX8zIkSNNTEyMCQ0NNX379jX79+93aZOTk2OGDBliIiMjTWRkpBkyZIg5ceJENWTpnnMLoerM/4cffjCbN292WRYeHm6GDRtWlSmWsWTJEpOUlGTsdru5/PLLzRtvvOFyv6f6IC4uzsTHx3s0t9+Tl5dnHn74YdOkSRMTEhJiLr30UjNu3DjjcDicbWrSa2DVqlXlvuZLn2PVmeu+fftMnz59TGhoqImJiTEjR450maYU1c/b41rpb4YEBQWZuLg4M2DAALNz507n/b76/PS319W2bdtMly5djN1uNw0bNjTp6enO6YDPl8vp06dN7969Tb169UxQUJBp0qSJGTZsWJk4fSEXX/t848lc/Olxuffee53vMfXq1TM9evRwFkH+9Jh4ks0YT/9kK+A/IiIiNHDgQM2YMcPboVS5vn37aseOHR6dhhIAAMBf+Pw1QvA93377re688041aNBAdrtdTZo00d133+2cNnLHjh26+eabVadOHYWEhOiqq67SzJkzXbaxevVq2Ww2zZ49W//4xz/UqFEjRUREqF+/fjp8+LDy8/P14IMPKjY2VrGxsbrnnnt06tQpl23YbDaNHDlS06dPV4sWLRQaGqr27dtrw4YNMsbo+eefV2JioiIiInT99dfrhx9+cFl/+PDhLued2mw2FRQUaObMmbLZbLLZbOrevfsF90tJSYlefvllXXXVVQoNDVXt2rV13XXXafHixS5tnnvuOV1++eWy2+2qX7++7r77bv30008u22ratKmGDx9eZh/du3d3iam0H999912NGzdOcXFxioqKUs+ePV2uRerevbs++OAD7du3z5kbs4UBAAAr85vps+EbvvrqK3Xu3FmxsbGaOHGi/vCHP+jQoUNavHixCgsLtXfvXnXs2FH169fXP//5T9WtW1dvv/22hg8frsOHD+vvf/+7y/bGjh2rlJQUzZgxQ3v37tUjjzyiO++8U7Vq1VKbNm307rvvasuWLRo7dqwiIyP1z3/+02X9pUuXasuWLXrmmWdks9n0j3/8Q3369NGwYcO0e/duvfLKK8rNzdWYMWN06623auvWrRUWAOvXr9f111+vlJQUPfHEE5KkqKioC+6b4cOH6+2339Z9992niRMnKjg4WJs3b3Y5AvPnP/9Zb7zxhkaOHKm+fftq7969euKJJ7R69Wpt3rxZsbGxF7y/3xo7dqw6deqkt956S3l5efrHP/6hfv366ZtvvlFgYKCmTp2qBx98UD/++KMWLlxYqX0AAADUKB498Q41zvXXX29q165tjhw5Uu79d9xxh7Hb7WXOH01NTTVhYWHm5MmTxpj/nhfdr18/l3ajR482ksxDDz3ksrx///4mJibGZZkk07BhQ3Pq1CnnskWLFhlJ5qqrrnI5r3TKlClGktm2bZtzWXmTJVT2GqG1a9caSWbcuHEVtvnmm2+MJPOXv/zFZfnnn39uJJmxY8c6lyUkJJQbR7du3Uy3bt2ct0v78aabbnJp99577xlJZv369c5lffr0KZMvAACAVXnt1Li1a9eqX79+iouLk81m06JFi9zehjFGkydPVvPmzWW32xUfH+/8oUpUvdOnT2vNmjW6/fbbVa9evXLbrFy5Uj169FB8fLzL8uHDh+v06dNav369y/K+ffu63G7ZsqUkqU+fPmWWHz9+vMzpcSkpKQoPDy+zfmpqqsuRn9Ll+/bt+908K+PDDz+UJKWlpVXYZtWqVZJU5pS3a665Ri1bttR//vOfSu//j3/8o8vt1q1bS/JcvgAAAP7Oa6fGFRQUqE2bNrrnnnt06623VmobDz/8sFasWKHJkyerVatWys3N1bFjx6o4UpQ6ceKEiouLz/vDYjk5Oc559H8rLi7Oef9vxcTEuNwODg4+7/IzZ84oIiLiotb3hKNHjyowMND5A2XlKc29ov65mKKlbt26Lrftdrsk6Zdffqn0NgEAAGoyrxVCqampSk1NrfD+wsJCPf7443rnnXd08uRJJSUl6dlnn3VeKP7NN98oMzNTO3bsUIsWLaopamuLiYlRYGBgmQv7f6tu3bouP5hV6uDBg5JU6WtgfF29evVUXFys7Ozscgsd6b/FyqFDh8oUkwcPHnTpm5CQEOfkE7917NixGtuHAAAA1clnZ42755579Nlnn2nOnDnatm2bbrvtNt144436/vvvJUlLlizRpZdeqqVLlyoxMVFNmzbV/fffr+PHj3s58porNDRU3bp107x58yo88tajRw+tXLnSWfiUmjVrlsLCwnTddddVR6iVZrfbK3UUpbSoz8zMrLDN9ddfL0l6++23XZZ/+eWX+uabb9SjRw/nsqZNm2rbtm0u7b777juXmeDcVdncAAAAaiKfnDXuxx9/1LvvvquffvrJeUrVI488ouXLl2v69Ol6+umntXv3bu3bt0/z5s3TrFmzVFxcrL/+9a8aOHCgVq5c6eUMaq4XX3xRnTt31rXXXqtHH31Ul112mQ4fPqzFixfr9ddf1/jx47V06VKlpKToySefVExMjN555x198MEHeu655xQdHe3tFM6rVatWWr16tZYsWaJGjRopMjLygo44dunSRUOHDtWkSZN0+PBh9e3bV3a7XVu2bFFYWJhGjRqlFi1a6MEHH9TLL7+sgIAApaamOmeNi4+P11//+lfn9oYOHaq77rpLf/nLX3Trrbdq3759eu655yq8NutCc1uwYIEyMzPVrl07BQQEqH379pXeHgAAgD/zyUJo8+bNMsaoefPmLssdDofz9KKSkhI5HA7NmjXL2W7atGlq166ddu3axelyHtKmTRt98cUXGj9+vB577DHl5+erYcOGuv766xUcHKwWLVpo3bp1Gjt2rNLS0vTLL7+oZcuWmj59erm/i+NrXnrpJaWlpemOO+7Q6dOn1a1bN61evfqC1p0xY4auvvpqTZs2TTNmzFBoaKiuuOIKjR071tkmMzNTzZo107Rp0/Tqq68qOjpaN954ozIyMlyu8xk8eLAOHjyo1157TdOnT1dSUpIyMzM1YcKESuf28MMPa+fOnRo7dqxyc3NljJHh95QBAIBF2YwPfBKy2WxauHCh+vfvL0maO3euhgwZop07dyowMNClbUREhBo2bKjx48fr6aefVlFRkfO+X375RWFhYVqxYoV69epVnSkAAAAA8CM+eUSobdu2Ki4u1pEjR9SlS5dy23Tq1Elnz57Vjz/+qGbNmkn69RoKSUpISKi2WAEAAAD4H68dETp16pR++OEHSb8WPi+++KJSUlIUExOjJk2a6K677tJnn32mF154QW3bttWxY8e0cuVKtWrVSjfddJNKSkrUoUMHRUREaMqUKSopKVFaWpqioqK0YsUKb6SEGurs2bPnvT8gIEABAT477wgAAADK4bVCaPXq1UpJSSmzfNiwYZoxY4aKioo0adIkzZo1Sz///LPq1q2r5ORkTZgwQa1atZL065TDo0aN0ooVKxQeHq7U1FS98MILZX5D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",
      "text/plain": [
       "<Figure size 1000x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 直方图\n",
    "df2[numeric_attributes2].hist(figsize=(10, 6), bins=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "stars_count         Axes(0.125,0.11;0.133621x0.77)\n",
       "forks_count      Axes(0.285345,0.11;0.133621x0.77)\n",
       "watchers          Axes(0.44569,0.11;0.133621x0.77)\n",
       "pull_requests    Axes(0.606034,0.11;0.133621x0.77)\n",
       "commit_count     Axes(0.766379,0.11;0.133621x0.77)\n",
       "dtype: object"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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5CApKWnIdbCIiKhn7im7IBER0VARGhqKjIwMREdHy7Lqubu7myx9OxERPRzYySIiIupCaGgogoODUVRUJKUr9/X15QgWERF1i50sIiKiblhYWMDf39/U1SAioocI12QRERERERH1InayiIiIiIiIehE7WURERERERL2Ia7KIiIi6YTAYmPiCiIjuCUeyiIiIuqDVauHh4YGAgACEh4cjICAAHh4e0Gq1pq4aERENYOxkERERdUKr1SIsLAyenp6yzYg9PT0RFhbGjhYREXWJnSwiIqJ2DAYDoqOjodFokJ2dDS8vL4wcORJeXl7Izs6GRqNBTEwMDAaDqatKREQDEDtZRERE7RQVFaGiogJxcXEwN5d/VZqbmyM2Nhbnz59HUVGRiWpIREQDGTtZRERE7VRVVQEA1Gp1p+XG88Y4IiKittjJIiIiasfV1RUAoNPpOi03njfGERERtcVOFhERUTu+vr5wc3NDQkICWltbZWWtra1ITEyEu7s7fH19TVRDIiIayNjJIiIiasfCwgLJycnIyclBSEiILLtgSEgIcnJykJSUxP2yiIioU9yMmIiIqBOhoaHIyMhAdHQ0fHx8pPPu7u7IyMhAaGioCWtHREQDGTtZREREXQgNDUVwcDCKiopQVVUFV1dX+Pr6cgSLiIi6xU4WERFRNywsLODv72/qahAR0UOEa7KIiIiIiIh6ETtZREREREREvYidLCIiIiIiol7EThYREREREVEvYieLiIiIiIioF7GTRURERERE1IvYySIiIiIiIupF3CeLesRgMHAzTiIiIiKiHuBIFt2VVquFh4cHAgICEB4ejoCAAHh4eECr1Zq6akREREREAw47WdQtrVaLsLAweHp6oqSkBNevX0dJSQk8PT0RFhbGjhYRERERUTvsZFGXDAYDoqOjodFokJmZicbGRnz22WdobGxEZmYmNBoNYmJiYDAYTF1VIiIiIqIBg50s6lJRUREqKirg4+ODiRMnyqYLTpw4Ed7e3jh//jyKiopMXVUiIiIiogGDnSzqUlVVFQAgLi6u0+mCL774oiyOiIiIiIiYXZC64eTkBACYNWsWsrOzYW5+p0/u5eWF7Oxs+Pn54fDhw1IcEdFgxOyqRER0rziSRfdNCGHqKhAR9SlmVyUiovvBThZ1qaamBgBw+PBhhISEyKYLhoSE4Msvv5TFERENJsbs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",
      "text/plain": [
       "<Figure size 1000x600 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 盒图与离群点\n",
    "df2[numeric_attributes2].plot(kind='box', subplots=True, sharey=False, figsize=(10, 6))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 数据缺失的处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 1471612 entries, 0 to 2917950\n",
      "Data columns (total 10 columns):\n",
      " #   Column            Non-Null Count    Dtype  \n",
      "---  ------            --------------    -----  \n",
      " 0   name              1471612 non-null  object \n",
      " 1   stars_count       1471612 non-null  int64  \n",
      " 2   forks_count       1471612 non-null  int64  \n",
      " 3   watchers          1471612 non-null  int64  \n",
      " 4   pull_requests     1471612 non-null  int64  \n",
      " 5   primary_language  1471612 non-null  object \n",
      " 6   languages_used    1471612 non-null  object \n",
      " 7   commit_count      1471612 non-null  float64\n",
      " 8   created_at        1471612 non-null  object \n",
      " 9   licence           1471612 non-null  object \n",
      "dtypes: float64(1), int64(4), object(5)\n",
      "memory usage: 123.5+ MB\n"
     ]
    }
   ],
   "source": [
    "# 剔除缺失部分\n",
    "df2_1 = df2.copy()\n",
    "df2_1 = df2_1.dropna(axis=0, how=\"any\")\n",
    "df2_1.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2917951 entries, 0 to 2917950\n",
      "Data columns (total 10 columns):\n",
      " #   Column            Dtype  \n",
      "---  ------            -----  \n",
      " 0   name              object \n",
      " 1   stars_count       int64  \n",
      " 2   forks_count       int64  \n",
      " 3   watchers          int64  \n",
      " 4   pull_requests     int64  \n",
      " 5   primary_language  object \n",
      " 6   languages_used    object \n",
      " 7   commit_count      float64\n",
      " 8   created_at        object \n",
      " 9   licence           object \n",
      "dtypes: float64(1), int64(4), object(5)\n",
      "memory usage: 222.6+ MB\n"
     ]
    }
   ],
   "source": [
    "# 使用最高频率值填充\n",
    "df2_2 = df2.copy()\n",
    "for attr in df2_2:\n",
    "    var = df2_2[attr].mode()\n",
    "    df2_2[attr] = df2_2[attr].fillna(var.iloc[0])\n",
    "df2_2.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 线性回归\n",
    "\n",
    "df2_3 = df2.copy()\n",
    "\n",
    "df2_3, mapping2 = encode(df2_3, nominal_attributes2)\n",
    "\n",
    "reg_attr2 = numeric_attributes2 + nominal_attributes2\n",
    "\n",
    "for attribute in numeric_attributes2:\n",
    "    # 找出与当前属性有关的其他属性\n",
    "    related_attributes = [x for x in reg_attr2 if x != attribute]\n",
    "    \n",
    "    # 筛选出不含缺失值的行，并将属性矩阵和目标值向量分别存储在X和y中\n",
    "    complete_rows = df2_3[related_attributes + [attribute]].dropna()\n",
    "    X = complete_rows[related_attributes]\n",
    "    y = complete_rows[attribute]\n",
    "    \n",
    "    # 建立线性回归模型并进行预测\n",
    "    lr = LinearRegression()\n",
    "    lr.fit(X, y)\n",
    "    \n",
    "    # 用模型预测缺失值并填充\n",
    "    incomplete_rows = df2_3[related_attributes + [attribute]].loc[df2_3[attribute].isnull()]\n",
    "    if incomplete_rows.size <= 0:\n",
    "        continue\n",
    "\n",
    "    X_incomplete = incomplete_rows[related_attributes].fillna(-1)\n",
    "    y_pred = lr.predict(X_incomplete)\n",
    "    df2_3.loc[df2_3[attribute].isnull(), attribute] = y_pred\n",
    "\n",
    "df2_3 = decode(df2_3, nominal_attributes2, mapping2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2917951 entries, 0 to 2917950\n",
      "Data columns (total 10 columns):\n",
      " #   Column            Dtype  \n",
      "---  ------            -----  \n",
      " 0   name              object \n",
      " 1   stars_count       int64  \n",
      " 2   forks_count       int64  \n",
      " 3   watchers          int64  \n",
      " 4   pull_requests     int64  \n",
      " 5   primary_language  object \n",
      " 6   languages_used    object \n",
      " 7   commit_count      float64\n",
      " 8   created_at        object \n",
      " 9   licence           object \n",
      "dtypes: float64(1), int64(4), object(5)\n",
      "memory usage: 222.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df2_3.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>stars_count</th>\n",
       "      <th>forks_count</th>\n",
       "      <th>watchers</th>\n",
       "      <th>pull_requests</th>\n",
       "      <th>primary_language</th>\n",
       "      <th>languages_used</th>\n",
       "      <th>commit_count</th>\n",
       "      <th>created_at</th>\n",
       "      <th>licence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>freeCodeCamp</td>\n",
       "      <td>359805</td>\n",
       "      <td>30814</td>\n",
       "      <td>8448</td>\n",
       "      <td>31867</td>\n",
       "      <td>TypeScript</td>\n",
       "      <td>['TypeScript', 'JavaScript', 'CSS', 'Shell', '...</td>\n",
       "      <td>32231.0</td>\n",
       "      <td>2014-12-24T17:49:19Z</td>\n",
       "      <td>BSD 3-Clause \"New\" or \"Revised\" License</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>996.ICU</td>\n",
       "      <td>264811</td>\n",
       "      <td>21470</td>\n",
       "      <td>4298</td>\n",
       "      <td>1949</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>3189.0</td>\n",
       "      <td>2019-03-26T07:31:14Z</td>\n",
       "      <td>Other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>free-programming-books</td>\n",
       "      <td>262380</td>\n",
       "      <td>53302</td>\n",
       "      <td>9544</td>\n",
       "      <td>8235</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>8286.0</td>\n",
       "      <td>2013-10-11T06:50:37Z</td>\n",
       "      <td>Other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>coding-interview-university</td>\n",
       "      <td>244927</td>\n",
       "      <td>65038</td>\n",
       "      <td>8539</td>\n",
       "      <td>867</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>2314.0</td>\n",
       "      <td>2016-06-06T02:34:12Z</td>\n",
       "      <td>Creative Commons Attribution Share Alike 4.0 I...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>awesome</td>\n",
       "      <td>235223</td>\n",
       "      <td>24791</td>\n",
       "      <td>7446</td>\n",
       "      <td>1859</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>1074.0</td>\n",
       "      <td>2014-07-11T13:42:37Z</td>\n",
       "      <td>Creative Commons Zero v1.0 Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917946</th>\n",
       "      <td>FastledServer</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>HTML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2022-01-24T00:33:33Z</td>\n",
       "      <td>CERN Open Hardware Licence Version 2 - Weakly ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917947</th>\n",
       "      <td>zero-motorcycle-canbus</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>C++</td>\n",
       "      <td>['C++', 'C']</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2022-01-23T21:51:51Z</td>\n",
       "      <td>MIT License</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917948</th>\n",
       "      <td>common-object-management-service</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>99</td>\n",
       "      <td>JavaScript</td>\n",
       "      <td>['JavaScript', 'Smarty', 'Dockerfile']</td>\n",
       "      <td>504.0</td>\n",
       "      <td>2022-01-26T19:08:25Z</td>\n",
       "      <td>Apache License 2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917949</th>\n",
       "      <td>MSI-Z690-Carbon-i7-12700KF-Hackintosh</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2022-01-24T03:27:16Z</td>\n",
       "      <td>CERN Open Hardware Licence Version 2 - Weakly ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917950</th>\n",
       "      <td>bottle</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Scala</td>\n",
       "      <td>['Scala', 'SuperCollider']</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2022-01-22T00:00:12Z</td>\n",
       "      <td>MIT License</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2917951 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                          name  stars_count  forks_count  \\\n",
       "0                                 freeCodeCamp       359805        30814   \n",
       "1                                      996.ICU       264811        21470   \n",
       "2                       free-programming-books       262380        53302   \n",
       "3                  coding-interview-university       244927        65038   \n",
       "4                                      awesome       235223        24791   \n",
       "...                                        ...          ...          ...   \n",
       "2917946                          FastledServer            6            1   \n",
       "2917947                 zero-motorcycle-canbus            6            3   \n",
       "2917948       common-object-management-service            6            7   \n",
       "2917949  MSI-Z690-Carbon-i7-12700KF-Hackintosh            6            5   \n",
       "2917950                                 bottle            6            0   \n",
       "\n",
       "         watchers  pull_requests primary_language  \\\n",
       "0            8448          31867       TypeScript   \n",
       "1            4298           1949             TOML   \n",
       "2            9544           8235             TOML   \n",
       "3            8539            867             TOML   \n",
       "4            7446           1859             TOML   \n",
       "...           ...            ...              ...   \n",
       "2917946         1              0             HTML   \n",
       "2917947         2              0              C++   \n",
       "2917948         6             99       JavaScript   \n",
       "2917949         1              0             TOML   \n",
       "2917950         1              0            Scala   \n",
       "\n",
       "                                            languages_used  commit_count  \\\n",
       "0        ['TypeScript', 'JavaScript', 'CSS', 'Shell', '...       32231.0   \n",
       "1              ['HTML', 'C++', 'TypeScript', 'JavaScript']        3189.0   \n",
       "2              ['HTML', 'C++', 'TypeScript', 'JavaScript']        8286.0   \n",
       "3              ['HTML', 'C++', 'TypeScript', 'JavaScript']        2314.0   \n",
       "4              ['HTML', 'C++', 'TypeScript', 'JavaScript']        1074.0   \n",
       "...                                                    ...           ...   \n",
       "2917946        ['HTML', 'C++', 'TypeScript', 'JavaScript']           3.0   \n",
       "2917947                                       ['C++', 'C']           3.0   \n",
       "2917948             ['JavaScript', 'Smarty', 'Dockerfile']         504.0   \n",
       "2917949        ['HTML', 'C++', 'TypeScript', 'JavaScript']           1.0   \n",
       "2917950                         ['Scala', 'SuperCollider']          70.0   \n",
       "\n",
       "                   created_at  \\\n",
       "0        2014-12-24T17:49:19Z   \n",
       "1        2019-03-26T07:31:14Z   \n",
       "2        2013-10-11T06:50:37Z   \n",
       "3        2016-06-06T02:34:12Z   \n",
       "4        2014-07-11T13:42:37Z   \n",
       "...                       ...   \n",
       "2917946  2022-01-24T00:33:33Z   \n",
       "2917947  2022-01-23T21:51:51Z   \n",
       "2917948  2022-01-26T19:08:25Z   \n",
       "2917949  2022-01-24T03:27:16Z   \n",
       "2917950  2022-01-22T00:00:12Z   \n",
       "\n",
       "                                                   licence  \n",
       "0                  BSD 3-Clause \"New\" or \"Revised\" License  \n",
       "1                                                    Other  \n",
       "2                                                    Other  \n",
       "3        Creative Commons Attribution Share Alike 4.0 I...  \n",
       "4                     Creative Commons Zero v1.0 Universal  \n",
       "...                                                    ...  \n",
       "2917946  CERN Open Hardware Licence Version 2 - Weakly ...  \n",
       "2917947                                        MIT License  \n",
       "2917948                                 Apache License 2.0  \n",
       "2917949  CERN Open Hardware Licence Version 2 - Weakly ...  \n",
       "2917950                                        MIT License  \n",
       "\n",
       "[2917951 rows x 10 columns]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2_3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         stars_count  forks_count  watchers  pull_requests  commit_count\n",
      "0             359805        30814      8448          31867       32231.0\n",
      "1             264811        21470      4298           1949        3189.0\n",
      "2             262380        53302      9544           8235        8286.0\n",
      "3             244927        65038      8539            867        2314.0\n",
      "4             235223        24791      7446           1859        1074.0\n",
      "...              ...          ...       ...            ...           ...\n",
      "2917946            6            1         1              0           3.0\n",
      "2917947            6            3         2              0           3.0\n",
      "2917948            6            7         6             99         504.0\n",
      "2917949            6            5         1              0           1.0\n",
      "2917950            6            0         1              0          70.0\n",
      "\n",
      "[2917951 rows x 5 columns]\n",
      "         stars_count  forks_count  watchers  pull_requests  commit_count\n",
      "0           359805.0      30814.0    8448.0        31867.0       32231.0\n",
      "1           264811.0      21470.0    4298.0         1949.0        3189.0\n",
      "2           262380.0      53302.0    9544.0         8235.0        8286.0\n",
      "3           244927.0      65038.0    8539.0          867.0        2314.0\n",
      "4           235223.0      24791.0    7446.0         1859.0        1074.0\n",
      "...              ...          ...       ...            ...           ...\n",
      "2917946          6.0          1.0       1.0            0.0           3.0\n",
      "2917947          6.0          3.0       2.0            0.0           3.0\n",
      "2917948          6.0          7.0       6.0           99.0         504.0\n",
      "2917949          6.0          5.0       1.0            0.0           1.0\n",
      "2917950          6.0          0.0       1.0            0.0          70.0\n",
      "\n",
      "[2917951 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "# K近邻算法\n",
    "\n",
    "df2_4 = df2.copy()\n",
    "\n",
    "df2_4, mapping2 = encode(df2_4, nominal_attributes2)\n",
    "\n",
    "imputer2 = KNNImputer(n_neighbors=5)\n",
    "completed2 = pd.DataFrame(imputer2.fit_transform(df2_4[reg_attr2]), columns=reg_attr2)\n",
    "\n",
    "print(df2_4[numeric_attributes2])\n",
    "print(completed2[numeric_attributes2])\n",
    "\n",
    "df2_4[numeric_attributes2] = completed2[numeric_attributes2]\n",
    "\n",
    "df2_4 = decode(df2_4, nominal_attributes2, mapping2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2917951 entries, 0 to 2917950\n",
      "Data columns (total 10 columns):\n",
      " #   Column            Dtype  \n",
      "---  ------            -----  \n",
      " 0   name              object \n",
      " 1   stars_count       float64\n",
      " 2   forks_count       float64\n",
      " 3   watchers          float64\n",
      " 4   pull_requests     float64\n",
      " 5   primary_language  object \n",
      " 6   languages_used    object \n",
      " 7   commit_count      float64\n",
      " 8   created_at        object \n",
      " 9   licence           object \n",
      "dtypes: float64(5), object(5)\n",
      "memory usage: 222.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df2_4.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>stars_count</th>\n",
       "      <th>forks_count</th>\n",
       "      <th>watchers</th>\n",
       "      <th>pull_requests</th>\n",
       "      <th>primary_language</th>\n",
       "      <th>languages_used</th>\n",
       "      <th>commit_count</th>\n",
       "      <th>created_at</th>\n",
       "      <th>licence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>freeCodeCamp</td>\n",
       "      <td>359805.0</td>\n",
       "      <td>30814.0</td>\n",
       "      <td>8448.0</td>\n",
       "      <td>31867.0</td>\n",
       "      <td>TypeScript</td>\n",
       "      <td>['TypeScript', 'JavaScript', 'CSS', 'Shell', '...</td>\n",
       "      <td>32231.0</td>\n",
       "      <td>2014-12-24T17:49:19Z</td>\n",
       "      <td>BSD 3-Clause \"New\" or \"Revised\" License</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>996.ICU</td>\n",
       "      <td>264811.0</td>\n",
       "      <td>21470.0</td>\n",
       "      <td>4298.0</td>\n",
       "      <td>1949.0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>3189.0</td>\n",
       "      <td>2019-03-26T07:31:14Z</td>\n",
       "      <td>Other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>free-programming-books</td>\n",
       "      <td>262380.0</td>\n",
       "      <td>53302.0</td>\n",
       "      <td>9544.0</td>\n",
       "      <td>8235.0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>8286.0</td>\n",
       "      <td>2013-10-11T06:50:37Z</td>\n",
       "      <td>Other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>coding-interview-university</td>\n",
       "      <td>244927.0</td>\n",
       "      <td>65038.0</td>\n",
       "      <td>8539.0</td>\n",
       "      <td>867.0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>2314.0</td>\n",
       "      <td>2016-06-06T02:34:12Z</td>\n",
       "      <td>Creative Commons Attribution Share Alike 4.0 I...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>awesome</td>\n",
       "      <td>235223.0</td>\n",
       "      <td>24791.0</td>\n",
       "      <td>7446.0</td>\n",
       "      <td>1859.0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>1074.0</td>\n",
       "      <td>2014-07-11T13:42:37Z</td>\n",
       "      <td>Creative Commons Zero v1.0 Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917946</th>\n",
       "      <td>FastledServer</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>HTML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2022-01-24T00:33:33Z</td>\n",
       "      <td>CERN Open Hardware Licence Version 2 - Weakly ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917947</th>\n",
       "      <td>zero-motorcycle-canbus</td>\n",
       "      <td>6.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>C++</td>\n",
       "      <td>['C++', 'C']</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2022-01-23T21:51:51Z</td>\n",
       "      <td>MIT License</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917948</th>\n",
       "      <td>common-object-management-service</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>99.0</td>\n",
       "      <td>JavaScript</td>\n",
       "      <td>['JavaScript', 'Smarty', 'Dockerfile']</td>\n",
       "      <td>504.0</td>\n",
       "      <td>2022-01-26T19:08:25Z</td>\n",
       "      <td>Apache License 2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917949</th>\n",
       "      <td>MSI-Z690-Carbon-i7-12700KF-Hackintosh</td>\n",
       "      <td>6.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TOML</td>\n",
       "      <td>['HTML', 'C++', 'TypeScript', 'JavaScript']</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2022-01-24T03:27:16Z</td>\n",
       "      <td>CERN Open Hardware Licence Version 2 - Weakly ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917950</th>\n",
       "      <td>bottle</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Scala</td>\n",
       "      <td>['Scala', 'SuperCollider']</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2022-01-22T00:00:12Z</td>\n",
       "      <td>MIT License</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2917951 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                          name  stars_count  forks_count  \\\n",
       "0                                 freeCodeCamp     359805.0      30814.0   \n",
       "1                                      996.ICU     264811.0      21470.0   \n",
       "2                       free-programming-books     262380.0      53302.0   \n",
       "3                  coding-interview-university     244927.0      65038.0   \n",
       "4                                      awesome     235223.0      24791.0   \n",
       "...                                        ...          ...          ...   \n",
       "2917946                          FastledServer          6.0          1.0   \n",
       "2917947                 zero-motorcycle-canbus          6.0          3.0   \n",
       "2917948       common-object-management-service          6.0          7.0   \n",
       "2917949  MSI-Z690-Carbon-i7-12700KF-Hackintosh          6.0          5.0   \n",
       "2917950                                 bottle          6.0          0.0   \n",
       "\n",
       "         watchers  pull_requests primary_language  \\\n",
       "0          8448.0        31867.0       TypeScript   \n",
       "1          4298.0         1949.0             TOML   \n",
       "2          9544.0         8235.0             TOML   \n",
       "3          8539.0          867.0             TOML   \n",
       "4          7446.0         1859.0             TOML   \n",
       "...           ...            ...              ...   \n",
       "2917946       1.0            0.0             HTML   \n",
       "2917947       2.0            0.0              C++   \n",
       "2917948       6.0           99.0       JavaScript   \n",
       "2917949       1.0            0.0             TOML   \n",
       "2917950       1.0            0.0            Scala   \n",
       "\n",
       "                                            languages_used  commit_count  \\\n",
       "0        ['TypeScript', 'JavaScript', 'CSS', 'Shell', '...       32231.0   \n",
       "1              ['HTML', 'C++', 'TypeScript', 'JavaScript']        3189.0   \n",
       "2              ['HTML', 'C++', 'TypeScript', 'JavaScript']        8286.0   \n",
       "3              ['HTML', 'C++', 'TypeScript', 'JavaScript']        2314.0   \n",
       "4              ['HTML', 'C++', 'TypeScript', 'JavaScript']        1074.0   \n",
       "...                                                    ...           ...   \n",
       "2917946        ['HTML', 'C++', 'TypeScript', 'JavaScript']           3.0   \n",
       "2917947                                       ['C++', 'C']           3.0   \n",
       "2917948             ['JavaScript', 'Smarty', 'Dockerfile']         504.0   \n",
       "2917949        ['HTML', 'C++', 'TypeScript', 'JavaScript']           1.0   \n",
       "2917950                         ['Scala', 'SuperCollider']          70.0   \n",
       "\n",
       "                   created_at  \\\n",
       "0        2014-12-24T17:49:19Z   \n",
       "1        2019-03-26T07:31:14Z   \n",
       "2        2013-10-11T06:50:37Z   \n",
       "3        2016-06-06T02:34:12Z   \n",
       "4        2014-07-11T13:42:37Z   \n",
       "...                       ...   \n",
       "2917946  2022-01-24T00:33:33Z   \n",
       "2917947  2022-01-23T21:51:51Z   \n",
       "2917948  2022-01-26T19:08:25Z   \n",
       "2917949  2022-01-24T03:27:16Z   \n",
       "2917950  2022-01-22T00:00:12Z   \n",
       "\n",
       "                                                   licence  \n",
       "0                  BSD 3-Clause \"New\" or \"Revised\" License  \n",
       "1                                                    Other  \n",
       "2                                                    Other  \n",
       "3        Creative Commons Attribution Share Alike 4.0 I...  \n",
       "4                     Creative Commons Zero v1.0 Universal  \n",
       "...                                                    ...  \n",
       "2917946  CERN Open Hardware Licence Version 2 - Weakly ...  \n",
       "2917947                                        MIT License  \n",
       "2917948                                 Apache License 2.0  \n",
       "2917949  CERN Open Hardware Licence Version 2 - Weakly ...  \n",
       "2917950                                        MIT License  \n",
       "\n",
       "[2917951 rows x 10 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2_4"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
